В основном я хочу сделать что-то вроде этого:
public static void OnPropertyChanged(this INotifyPropertyChanged changedObject, string propertyName)
{
var handler = changedObject.PropertyChanged;
if (handler != null)
{
var e = new PropertyChangedEventArgs(propertyName);
handler(changedObject, e);
}
}
, что дает "System.ComponentModel.INotifyPropertyChanged.PropertyChanged может использоваться только в левой части + = или - ="
Я имею в виду, я могу обойти это, сделав это:
public static void RaisePropertyChanged(this PropertyChangedEventHandler handler, object sender, string propertyName)
{
if (handler != null)
{
var e = new PropertyChangedEventArgs(propertyName);
handler(sender, e);
}
}
но вызывающий код выглядит не так хорошо:
PropertyChanged.RaisePropertyChanged(this, "Name");
против этого:
this.OnPropertyChanged("Name");
Ничего страшного, но было бы неплохо иметь возможность вызывать его, как если бы это был метод экземпляра.