2013-10-10 111 views
0

我在wpf c#應用程序中有一個組合框。wpf combobox默認行爲

我想要做的是以下幾點。

我有一個未選擇的組合框,當你看着它,我可以看到一個箭頭的右側和左側的文本的空間。爲了這個問題的目的,我將這個文本稱爲「單元格文本」。

當您選擇與列表一起出現的按鈕時。我希望這個列表包含我的GUI/PC可以連接的大量機器人。當我選擇一個機器人時,會向該機器人發送一條消息,試圖連接它。

的「細胞文本」我想顯示當前連接的機器人的名稱。將會出現與所選機器人的連接不可能的情況,並且成功的連接可能需要5秒鐘。

什麼,我需要做的是停止自動出現在「單元格文本」的選擇,這可能嗎?

感謝

<ComboBox ItemsSource="{Binding MyRobotOptions}" Grid.Column="1" SelectedItem="{Binding SelectedRobot}" Margin="5"/> 
+0

「自動出現」是什麼意思?你的意思是你想要一個空或空選擇的概念?例如。如果沒有選擇機器人,您是否希望它在原來空? –

+0

當我選擇一個機器人時,我不希望選擇立即出現,我只希望它在變量「ConnectedRobot」更新時更新。不是當我做出選擇。 – user2336727

+0

有關添加什麼'Timer'或[的SelectionChanged(http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.selector.selectionchanged.aspx)事件中類似的東西? – Tico

回答

0

對於沒有經驗的用戶(沒有進攻),你可以做到這一點最簡單的方法之一是在「單元格文本」疊加一個TextBlock,因爲你怎麼稱呼它:

<Grid> 
    <ComboBox ItemsSource="{Binding MyRobotOptions}" Grid.Column="1" SelectedItem="{ 
     Binding SelectedRobot}" Margin="5" /> 
    <TextBlock Text="{Binding YourSelectedRobotName}" Background="White" 
     Margin="0,0,24,0" /> 
</Grid> 

我一直沒能對此進行測試,所以你可能需要調整Margin屬性值,使之更好地適應,但它應該隱藏原始文本值。

0

更好的解決方案,我認爲是用於連接狀態的單獨的指示器。例如Combobox周圍的彩色邊框在連接時變成綠色,斷開時爲紅色。這樣你就不必打破每個人都假設的ComboBox的範例:當你選擇一個它立即出現在ComboBox中的選擇。