💡

Listの中身が変更された場合に、変更通知を送る方法

2022/09/07に公開

Listの中身が変更された場合に、変更通知を送る方法

自分用のメモみたいなものなので若干プログラムの中身はテキトーだけど、ざっくり下記のような感じで書くとできる。

  1. Listの中身のクラスで ProperyChangedEventHandler を設定する。
  2. Listがプロパティにあるクラスで、1の ProperyChangedEventHandler に対し、変更があった場合に処理を行うメソッドを追加する。
// Listの中身のクラス
class A {
    // プロパティとか設定する(略)
    public event PropertyChangedEventHandler XXXPropertyChanged;
    private void NotifyXXXPropertyChanged([CallerMemberName] string propertyName = "")
    {
        if(XXXPropertyChanged != null)
        {
            XXXPropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
    // (略)
}
// Listの中身のAクラスのプロパティに変更があった場合、callbackMethod()が呼び出されるように設定する
List<A> testList = new List<A>

// ListにAクラスのオブジェクトを追加する処理を施す(略)

foreach(A testa in testList)
{
    testa.XXXPropertyChanged += this.callbackMethod;
}
// (略)

Discussion