我有一个ComboBox
绑定到自定义对象列表的 WPF,每个自定义对象都包含一个IsSelected
属性。此属性绑定到其对应ComboBoxItem
的 'IsSelected
属性。最初创建列表时,我将特定对象的IsSelected
属性设置为true
,期望在最初显示 ComboBox 时选择此项。但是,ComboBox 始终将列表中的第一项显示为选中状态,无论其绑定列表中的哪个对象的IsSelected
属性设置为true
。
我知道绑定工作正常,因为当我单击ComboBox
它并展开以显示所有可用选项时,ComboBox
更新以显示正确的选定项目。
这是定义我的ComboBox
. 它在 a 中DataTemplate
,并且从页面中动态添加/删除,如果这完全相关的话:
<ComboBox ItemsSource="{Binding DataContext.YearList, RelativeSource={RelativeSource AncestorType=Window}}" IsSynchronizedWithCurrentItem="True">
<ComboBox.ItemContainerStyle>
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="IsSelected" Value="{Binding IsSelected}"/>
</Style>
</ComboBox.ItemContainerStyle>
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Label Content="{Binding Object}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>