c# - INotifyPropertyChanged 委托(delegate)

标签 c# wpf

我看到了 INotifyPropertyChanged 的​​实现,比如

public event PropertyChangedEventHandler PropertyChanged = delegate { };

我通常这样实现

protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
    PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}

2和推荐使用的有什么区别/优点/缺点?

最佳答案

不同之处在于,通过使用空操作委托(delegate)初始化 PropertyChanged,您无需担心委托(delegate)是否为 null因为没有订阅者。

在 C# 6 之前,“检查它是否为 null”方面有点麻烦 - 使用您正在使用的 null 条件运算符,使用它来处理没有订阅者可能更简单。另一种方法仍然有效,您甚至可以将它们一起使用 - 它只是多余的。

关于c# - INotifyPropertyChanged 委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39957670/

相关文章:

c# - 尝试使用 C# 和 WPF 调整文本框中的 TextBox + 字体大小,只能做一个或另一个

wpf - 嵌套 View 模型上的 IOC 容器

c# - WPF/Caliburn.Micro - 使用 IDataErrorInfo 进行输入验证

c# - 使此 LINQ 语句返回 T 而不是 Task<T>

c# - 使用 HttpWebRequest 的网络身份验证和网站身份验证

c# - 两种型号之间的差异

c# - 列表中的按钮数据绑定(bind)行为不正确

c# - XNA 防止 Sprite 离开屏幕

c# - 模拟并发 WCF 客户端调用并测量响应时间

wpf - 水平排列 ListView 项目