我進入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') –