2012-12-10 23 views
1

中的集合發生更改時,WPF Combobox未更新當Model中的集合發生更改時,WPF Combobox未更新。當模型

我對DataGrid和ComboBox都使用ICollectionView。 DataGrid正在更新集合在模型中更改時,但組合框未更新。請讓我知道是否有其他方法可以做到這一點。

下面是代碼

型號 - > 在模型中我有

public ObservableCollection<Product> MyModelProducts 

ViewModel-> DataGrid中收集

public ICollectionView MyViewModelProducts 
{ 
    get 
    { 
    return CollectionViewSource.GetDefaultView(MyModel.Instance.MyModelProducts);    
    } 
} 

視圖模型,組合框收藏

public ICollectionView MyViewModelListOfProducts 
{ 
    get 
    { 
    return CollectionViewSource.GetDefaultView(MyModel.Instance.MyModelProducts.Select(p => p.Category).Distinct().ToList<string>());    
    } 
} 
在查看10

代碼 - >

<ComboBox ItemsSource="{Binding MyViewModelListOfProducts, Mode=OneWay}" /> 

綁定MyViewModelProducts到DataGrid中

綁定MyViewModelListOfProducts到一個ComboBox。

+0

你有沒有嘗試過的組合綁定到DataGrid –

+0

我的組合框是在DataGrid外面.. – DotNet

回答

1
  1. 您必須參考所選產品的報價來過濾
  2. DataGrid設置IsSynchronizedWithCurrentItem爲true。
  3. 當您需要更新時,請提升MyViewModelListOfProducts的物業更改。您訂閱MyViewModelProducts.CurrentChanged事件並從那裏更新它。
  4. 您可以在Product的類,它是LINQ查詢(並在變更通知,當然)屬性DistinctCategories左右,然後綁定ComboBoxMyViewModelProducts並指向此屬性 - 這個我認爲是首選的方式,除非您認爲不同的類別在模型層中確實沒有用處。
+0

無論案件正在.. – DotNet

+0

回答更新。 – Shimmy