我进入MVVM和偶然调用这个MWE所示OnPropertyChanged
函数的两个版本:OnPropertyChanged INotifyPropertyChanged的
public class SampleModel : INotifyPropertyChanged
{
private string _name;
public string Name
{
get { return _name; }
set
{
if (value == _name) return;
_name = value;
// Version 1
OnPropertyChanged();
// Version 2
OnPropertyChanged(nameof(Name));
}
}
#region INotifyPropertyChanged members
public event PropertyChangedEventHandler PropertyChanged;
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
}
为什么我会选择第1版超过2版本,反之亦然?
我接受你的回答,因为我不知道你在[CallerMemberName]中做了哪些解释:) –
在这里需要:) 请记住[CallerMemberName]属性仅适用于此,因为字符串输入是可选的('string propertyName = null') –