繁体   English   中英

在组合框获得焦点后,将加载WPF ComboBoxItem样式

[英]WPF ComboBoxItem Style gets loaded after Combobox gets focus

我正在开发一个学习MVVM的应用程序。 我现在有一个问题,但找不到与我相似的案例。

首先我的代码:

<ComboBox Width="100" DisplayMemberPath="Name" ItemsSource="{Binding MyList}">
  <ComboBox.Resources>
     <Style TargetType="ComboBoxItem">
       <Setter Property="IsSelected" Value="{Binding IsSelected}"/>
     </Style>
  </ComboBox.Resources>
</ComboBox>

我有一个简单的对象列表,其结构如下:

  • 属性:字符串名称
  • 属性:bool IsSelected

我对象的这个列表绑定到我的ComboBox ,并绑定IsSelected我的对象到的,物业IsSelected的的,物业ComboBoxItem 绑定工作正常,我的对象在ComboBox ,如果我选择一个项目,则IsSelected -property会更新。

但是问题是,在应用程序启动时没有选定的项目可见。 我必须单击ComboBox以便所选项目可见。 我认为ComboBoxItem的样式是在其父级获得焦点之后加载的。

有什么解决办法吗?

您应该将ComboBoxSelectedItem属性设置或绑定到要选择的项目的实例:

<ComboBox Width="100" DisplayMemberPath="Name" ItemsSource="{Binding MyList}" SelectedItem="{Binding Selected}">
...

Selected = MyList.FirstOrDefault(x => x.IsSelected == true);

这是使用MVVM在ComboBox框中选择项目的方式。 您没有定义ComboBoxItem样式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM