gpt4 book ai didi

c# - 如何避免手动实现 INotifyPropertyChanged

转载 作者:太空狗 更新时间:2023-10-29 18:17:07 26 4
gpt4 key购买 nike

有什么办法可以避免这种情况。我有很多绑定(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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com