WPF ComboBox最初没有选择正确的项目

时间:2013-06-27 14:05:51

标签: c# wpf xaml binding combobox

我有一个WPF ComboBox,它绑定到一个自定义对象列表,每个对象都包含一个IsSelected属性。此属性绑定到其对应的ComboBoxItem的{​​{1}}属性。在最初创建列表时,我将特定对象的IsSelected属性设置为IsSelected,期望在最初显示ComboBox时选择此项。但是,无论绑定列表中的哪个对象将true属性设置为IsSelected,ComboBox始终会将列表中的第一个项目显示为已选中。

我知道绑定工作正常,因为当我点击true并展开以显示所有可用选项时,ComboBox会更新以显示正确的所选项目。

这是定义我的ComboBox的XAML。它位于ComboBox中,并且会在页面中动态添加/删除(如果完全相关的话):

DataTemplate

2 个答案:

答案 0 :(得分:3)

尝试删除IsSynchronizedWithCurrentItem="True"。该设置告诉控件在绑定集合生成的CurrentItem上使用ICollectionView,默认为列表中的第一项。如果您想查看它的功能,可以使用CollectionViewSource.GetDefaultView(YearList)然后查看或更改当前项目,在代码中使用此视图。

答案 1 :(得分:0)

尝试绑定到 SelectedItem 属性, ComboBox 默认情况下不会选择第一项但是您的数据源绑定:

<ComboBox ItemsSource="{Binding YearList, RelativeSource={RelativeSource AncestorType=Window}}" SelectedItem="{Binding <YourDefinedSelectedItemProperty>, RelativeSource={RelativeSource AncestorType=Window}}">

希望这有帮助。