2016-05-29 38 views
0

之間的DataGrid的綁定在Windows窗體不同的行爲我用:試圖瞭解在WindowsForms和WPF

dataGridView.DataSource = new BindingList<MyItem>(); 

在WPF的等效似乎是:

dataGrid.ItemsSource = new BindingList<MyItem>(); 

我不明白(也許我做錯了)是在WPF的情況下,綁定似乎不是雙向的。也就是說:當我修改MyItem時,它不會自動反映在視圖中。

回答

1
  1. 使用ObservableCollection<MyItem>

  2. MyItem必須執行INotifyPropertyChanged並在其任何屬性值發生變化時增加PropertyChanged

這將更新網格單元格。

  1. 如果您打算對WPF做任何事情,請學習MVVM並使用Binding。將集合分配給屬性不會綁定它。

XAML:

<DataGrid 
    x:Name="dataGrid" 
    ItemsSource="{Binding MyItemCollection}" 
    ... 
    /> 

您還可以創建一個綁定程序,如果你真的想了很多額外的工作,爲自己。

Seems like ObservableCollection has some improvements over BindingList