💡
Listの中身が変更された場合に、変更通知を送る方法
Listの中身が変更された場合に、変更通知を送る方法
自分用のメモみたいなものなので若干プログラムの中身はテキトーだけど、ざっくり下記のような感じで書くとできる。
- Listの中身のクラスで
ProperyChangedEventHandler
を設定する。 - 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