有什么办法可以避免这种情况。我有很多绑定(bind)到 DataGridView 的类,它们只是具有默认 getter 和 setter 的简单属性集合。所以这些类非常简单。现在我需要为他们实现 INotifyPropertyChanged 接口(interface),这将增加代码量。 有没有我可以继承的类以避免编写所有这些无聊的代码?我想象我可以从某个类继承我的类并用一些属性装饰属性,它会产生魔力。这可能吗?
我很了解面向方面的编程,但我更愿意以面向对象的方式进行编程。
最佳答案
视情况而定;你可以使用 PostSharp编写这样一个由编织者重写的属性;然而,我很想手动完成它——也许使用一种通用的方法来处理数据更新,即
private string name;
public string Name {
get { return name; }
set { Notify.SetField(ref name, value, PropertyChanged, this, "Name"); }
}
与:
public static class Notify {
public static bool SetField<T>(ref T field, T value,
PropertyChangedEventHandler handler, object sender, string propertyName)
{
if(!EqualityComparer<T>.Default.Equals(field,value)) {
field = value;
if(handler!=null) {
handler(sender, new PropertyChangedEventArgs(propertyName));
}
return true;
}
return false;
}
}
关于c# - 如何避免手动实现 INotifyPropertyChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3130491/