我的视图模型为我的视图提供的属性实现了INotifyPropertyChanged。它提供了一组未实现INotifyPropertyChanged的对象。
我的集合绑定到我视图中的ItemControl,其中ItemTemplate用于显示每个项目。项模板绑定到我的集合成员的Name属性。
如何在我的收藏成员的属性发生变化时告诉我的观点更新?
答案 0 :(得分:1)
您必须为集合成员实现INotifyPropertyChanged。或者您可以在ViewModel中重置您的收藏:
public void Reset() {
List<TestData> temp = YourCollection;
YourCollection = null;
YourCollection = temp;
}
答案 1 :(得分:1)
您需要为集合中的对象实现INotifyPropertyChanged
(推荐方法),或者您可以通过类似
myItemsControl.GetBindingExpression(
ItemsControl.ItemsSourceProperty).UpdateTarget();
如果您在ViewModel中,您可以在Collection类上引发PropertyChanged
事件,如下所示,但我不确定是否会更新单个项目
// My PropertyChanged method is usually called RaisePropertyChanged
RaisePropertyChanged("MyCollection");
您也可以执行Mirimon建议的操作并将值设置为null然后再返回,尽管如果可能的话,我会建议采用不同的方法。