我正在开发一个学习MVVM的应用程序。我现在有一个问题,但我找不到类似的案例。
首先是我的代码:
<ComboBox Width="100" DisplayMemberPath="Name" ItemsSource="{Binding MyList}">
<ComboBox.Resources>
<Style TargetType="ComboBoxItem">
<Setter Property="IsSelected" Value="{Binding IsSelected}"/>
</Style>
</ComboBox.Resources>
</ComboBox>
我有一个简单对象列表,结构如下:
我将此对象列表绑定到ComboBox
并将IsSelected
- 我的对象的属性绑定到IsSelected
- ComboBoxItem
的属性。绑定工作正常,我的对象在ComboBox
,如果我选择一个项IsSelected
- 属性得到更新。
但问题是,在应用程序开始时,没有可见的选定项目。我必须点击ComboBox
才能看到所选项目。我认为ComboBoxItem
的样式在其父对象获得焦点后会被加载。
有什么解决方案吗?
答案 0 :(得分:0)
您应该将SelectedItem
的{{1}}属性设置或绑定到要选择的项目的实例:
ComboBox
<ComboBox Width="100" DisplayMemberPath="Name" ItemsSource="{Binding MyList}" SelectedItem="{Binding Selected}">
...
这是使用MVVM在Selected = MyList.FirstOrDefault(x => x.IsSelected == true);
中选择项目的方法。您没有定义ComboBox
样式。