属性通知
原创2023年6月28日小于 1 分钟
WPF的VM中常用到INotifyPropertyChanged接口,来通知属性变更,但需要填写具体属性名。
这里有个编译器解释属性CallerMemberName可以简化这部分工作量。
简化前:
public class Dto : INotifyPropertyChanged
{
public event PropertyChangedEventHandler? PropertyChanged;
private string _name = "";
public string Name
{
get { return _name; }
set { _name = value; OnPropertyChanged(nameof(Name)); }
}
private void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
简化后:
public class Dto : INotifyPropertyChanged
{
public event PropertyChangedEventHandler? PropertyChanged;
private string _name = "";
public string Name
{
get { return _name; }
set { _name = value; OnPropertyChanged(); }
}
private void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}