2

嘿,我的 ViewModel 上有一个 CollectionViewSource 属性。

此 ViewModel 以这种方式绑定到 ComboBox:

<ComboBox   ItemsSource="{Binding Products.View}" 
SelectedItem="{Binding SelectedEntity.Product}"  
IsSynchronizedWithCurrentItem="True"/>

当绑定到现有的 SelectedEntity 时,它可以正常工作。

当我尝试绑定到一个SelectedEntity不具有产品时,我想显示列表中的第一个项目。因此我尝试使用Products.View.MoveCurrentToFirst(),但仍然没有显示第一项。

当我设置时它当然有效SelectedEntity.Product = Products.View.CurrentItem.

我能做些什么来改进我的代码?这对我来说似乎有点不对...

4

1 回答 1

0

WPF 中的 SelectedItem 选择整个实例,因此如果您将 SelectedItem 绑定到实体的导航属性,那么一切都很好。但是,如果您将 SelectedItem 绑定到实体的非导航属性,那么这可能是一个问题,如果这是业务需求,我建议您改为绑定 SelectedValue。

对我来说,我发现最好将 SelectedItem 绑定到我的实体的导航属性,并将 SelectedValue 绑定到我的实体的 value 属性。

我希望这有帮助。

于 2012-12-03T19:16:02.533 回答