在我使用的Windows窗体中:
dataGridView.DataSource = new BindingList<MyItem>();
WPF中的等价物似乎是:
dataGrid.ItemsSource = new BindingList<MyItem>();
我不明白的是(也许我做错了什么),在WPF的情况下,绑定似乎不是双向的。也就是说:当我修改MyItem
时,它不会自动反映在视图中。
-
使用
ObservableCollection<MyItem>
。 -
MyItem
必须实现INotifyPropertyChanged
,并在其任何属性值更改时引发PropertyChanged
。
这将更新网格单元。
- 如果您计划使用WPF做任何事情,请学习MVVM并使用
Binding
。将集合分配给属性不会绑定它
XAML:
<DataGrid
x:Name="dataGrid"
ItemsSource="{Binding MyItemCollection}"
...
/>
如果你真的想为自己做很多额外的工作,你也可以通过编程创建绑定。
ObservableCollection似乎比BindingList有一些改进。