嘿,我的 ViewModel 上有一个 CollectionViewSource 属性。
此 ViewModel 以这种方式绑定(bind)到 ComboBox:
<ComboBox ItemsSource="{Binding Products.View}"
SelectedItem="{Binding SelectedEntity.Product}"
IsSynchronizedWithCurrentItem="True"/>
当绑定(bind)到现有的 SelectedEntity 时,它工作正常。
当我尝试绑定(bind)到 SelectedEntity
时,它没有我想要显示列表中第一个项目的产品。因此我尝试使用 Products.View.MoveCurrentToFirst()
,但仍然没有显示第一个项目。
当然,当我设置 SelectedEntity.Product = Products.View.CurrentItem.
我能做些什么来改进我的代码?这对我来说有点不对...
最佳答案
WPF 中的 SelectedItem 选择整个实例,因此如果您将 SelectedItem 绑定(bind)到实体的导航属性,那么一切都很好。但是,如果您将 SelectedItem 绑定(bind)到实体的非导航属性,那么这可能是个问题,如果这是业务需求,我建议您改为绑定(bind) SelectedValue。
对我来说,我发现最好将 SelectedItem 绑定(bind)到我的实体的导航属性并将 SelectedValue 绑定(bind)到我的实体的值属性。
希望对您有所帮助。
关于c# - 将 ComboBox 绑定(bind)到 CollectionViewSource 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13274763/