【发布时间】:2013-07-09 19:03:47
【问题描述】:
我有一个组合框在运行时没有按预期工作。我可以使用鼠标展开下拉窗口,但单击一个项目似乎没有选择它。下拉菜单消失,但选择没有改变。使用键盘时,相同的控件似乎可以按预期工作。向上/向下箭头更改选择。我也可以使用箭头键选择和输入来选择更改值。
如何点击选择项目?
<DataTemplate DataType="{x:Type myType}">
<Border ...>
<Grid x:Name="upperLayout">
<Grid x:Name="lowerLayout">
<ComboBox x:Name="combo"
Grid.Column="2"
ItemsSource="{Binding Things}"
SelectedItem="{Binding SelectedThing}"
>
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Grid>
</Border>
</DataTemplate>
【问题讨论】:
-
当您更改
SelectedItem时,SelectedThing是否会更改? -
您是否尝试查看 SelectionChanged 是否被调用?只需将事件添加为方法和断点即可。
-
我认为 TextBlock 是默认设置,因此您可以只设置 DisplayMemberPath。怀疑这会解决它,但值得一试。我什至会尝试 RO 文本框。
-
SelectionChanged 未被调用,DisplayMemberPath 已实现并使 XAML 更简单。发现问题,请参阅提供的答案。
标签: c# wpf xaml combobox datatemplate