所以我有一个对象的 MVVM 绑定(bind)设置。该对象属于如下类:
public class SomeClass
{
public int Field1 {get; set:}
public List<MyClass> CollectionOfObjects {get; set;}
public string Description {get; set;}
}
我的 MVVM 类实现了 INotifyPropertyChanged ...
private SomeClass _viewableObject;
public SomeClass ViewableObject
{
get
{
return _viewableObject;
}
set
{
_viewableObject = value;
OnPropertyChanged("ViewableObject");
}
}
这在我定义一个新对象的情况下非常有用。例如:
ViewableObject = new SomeClass();
但我将 UI 组件绑定(bind)到
SomeClass
的字段。 . Field1
和 Description
被推送到文本框并说CollectionOfObjects
被推送到 DataGrid
.<Datagrid .... ItemsSource = "{Binding ViewableObject.CollectionOfObjects}" ></DataGrid>
所以如果我只更新
ViewableObject.CollectionOfObjects
而不是全部ViewableObject
如何让 UI 更新以反射(reflect)修改?有没有更简洁的方法来做到这一点,而不是拆分 SomeClass
的每个字段?在 MVVM 中?
最佳答案
您可以创建自己的集合来实现 INotifyCollectionChanged ,但您会发现只使用 ObservableCollection 会更容易。已经这样做了。
关于c# - 字段更改时,MVVM 对象触发属性更改事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25091036/