wpf - List<> 集合不会更新 MVVM 中的 View

标签 wpf mvvm

我使用了List<Person> collection作为 DataGrid 控件的 ItemsSource。

但如果我从列表集合中删除项目,它不会更新 View 。我为解决方案苦苦挣扎了很长时间。

然后代替 List<Person>我的 ViewModel 中的集合。我把它改成了 ObservableCollection<Person> collection .现在它会在集合发生变化时更新 View 。

我不知道为什么它只更新 ObservableCollection<Person> ?有人吗?

最佳答案

嗯,它的名字。一个简单的列表不会告诉 ui 更新,换句话说“ View 无法观察列表”。数据绑定(bind)背后没有奇怪的魔法。 WPF 和 DataBinding 需要数据模型告诉他们“这是新的”或“这是已更改的”,您可能已经看到 INotifyPropertyChanged , INotifyCollectionChanged是相同的,但集合和 List<>没有实现它,ObservableCollection可以。

关于wpf - List<> 集合不会更新 MVVM 中的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10598279/

相关文章:

c# - WPF 触发按钮可以在 ItemsControl 之外从 ItemsControl 执行

c# - 将按钮命令绑定(bind)到不同的 ViewModel

wpf - 当放置在 ContentControl 中时,控件的父级为空

java - 将数据从存储库转换为 Viewmodel 的数据

wcf - 防止 MVVM ServiceAgent 事件多次连接

wpf - CollectionChanged 样本

wpf - 刷新 MVVM 中的只读(链式)属性

c# - 更新自动计算的属性的绑定(bind)

wpf - StaticResource Lookup 不适用于合并字典

c# - 图像已保存,但不会加载