在Combobox
中更改集合时,
WPF Model
未更新。
我对DataGrid和ComboBox都使用ICollectionView
。在模型中更改集合时,DataGrid正在更新,但 ComboBox未更新 。如果有其他方法可以,请告诉我。
这是代码
模型 - > 在Model I中有
public ObservableCollection<Product> MyModelProducts
ViewModel-&GT; DataGrid集合
public ICollectionView MyViewModelProducts
{
get
{
return CollectionViewSource.GetDefaultView(MyModel.Instance.MyModelProducts);
}
}
ViewModel-ComboBox Collection
public ICollectionView MyViewModelListOfProducts
{
get
{
return CollectionViewSource.GetDefaultView(MyModel.Instance.MyModelProducts.Select(p => p.Category).Distinct().ToList<string>());
}
}
视图中的代码 - &gt;
<ComboBox ItemsSource="{Binding MyViewModelListOfProducts, Mode=OneWay}" />
将MyViewModelProducts绑定到DataGrid
将MyViewModelListOfProducts绑定到ComboBox。
答案 0 :(得分:1)
IsSynchronizedWithCurrentItem
。DataGrid
设为true
MyViewModelListOfProducts
的属性更改。您订阅MyViewModelProducts.CurrentChanged
事件并从那里更新。DistinctCategories
类中拥有属性Product
左右(当然,在更改时会通知),然后将ComboBox
绑定到MyViewModelProducts
并指向此属性 - 我认为这是首选方式,除非您认为不同的类别在模型层中确实没用。