我使用了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/