我认为您寻求的界面 if INotifyPropertyChanged
。
Microsoft 文档:INotifyPropertyChanged
实现非常简单。
在您所做的每一处房产set
中:
public bool MyProperty
{
get { return myField; }
set
{
if (myField != value)
{
myField= value;
NotifyPropertyChanged();
}
}
}
以及方法和事件:
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
每个观察者只需要注册到那个事件,当一个属性发生变化以及哪个发生了变化时,他们就会得到一个反馈。
另外,当您向它们提供实现该接口的对象时,像 PropertyGrid 这样的控件会自动注册它们自己。