<分区>
当您实现 INotifyPropertyChanged 接口(interface)时,您负责在类中每次更新属性时调用 PropertyChanged 事件。
这通常会导致以下代码:
public class MyClass: INotifyPropertyChanged
private bool myfield;
public bool MyField
{
get { return myfield; }
set
{
if (myfield == value)
return;
myfield = value;
OnPropertyChanged(new PropertyChangedEventArgs("MyField"));
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(PropertyChangedEventArgs e)
{
PropertyChangedEventHandler h = PropertyChanged;
if (h != null)
h(this, e);
}
}
即每个属性 12 行。
如果能够像这样装饰自动属性,那就简单多了:
[INotifyProperty]
public double MyField{ get; set; }
但不幸的是,这是不可能的(例如,参见 msdn 上的 this post)
如何减少每个属性所需的代码量?