バインディングソースに CLR オブジェクトを利用する際、バインディングターゲットの変更を通知するためには、INotifyPropertyChanged インターフェイスを実装します。
C# 6 で導入された Null 条件演算子を利用して OnPropertyChanged の実装を簡潔に記述することができるようになっています。
public class NotificationObject : INotifyPropertyChanged { /// <summary> /// プロパティ値の変更をクライアントに通知する。 /// </summary> public event PropertyChangedEventHandler PropertyChanged; /// <summary> /// PropertyChanged イベント を発生させる。 /// </summary> /// <param name="propertyName">変更されたプロパティ名</param> protected void OnPropertyChanged([CallerMemberName] string propertyName = "") { // C# 6 の Null 条件演算子を利用 this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); // C# 6 以前 //if (this.PropertyChanged != null) //{ // this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); //} } }
public class MyClass : NotificationObject { private string _text; public string Text { get { return _text; } set { this._text = value; this.OnPropertyChanged(); } } public MyClass() { } }Null 条件演算子 (C# および Visual Basic)
https://msdn.microsoft.com/ja-jp/library/dn986595?f=255&MSPPError=-2147217396
0 件のコメント:
コメントを投稿