基本的に私はこのようなことをしたい:
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");
大したことではありませんが、インスタンスメソッドのように呼び出せるといいですね。