2013-10-10 26 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中的选择。