かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

ReactiveProperty v2.1.2をリリースしました

NuGet Gallery | ReactiveProperty 2.1.2

v2.1.2

追加

  • ObservableCollection と ReadOnlyObservableCollection の要素のプロパティ変更を監視する ObserveElementProperty 拡張メソッドを実装しました。
  • INotifyCollectionChanged に対して ObserveXxxChanged 拡張メソッドを追加しました。

変更

  • ToReadOnlyReactiveCollection 拡張メソッドから参照型制約を除去しました。

ちょっと解説

ObserveElementProperty拡張メソッドは、以下のようなクラスがあるときに

public class Person : BindableBase
{
  private bool isDelete;
  public bool IsDelete
  {
    get { return this.isDelete; }
    set { SetProperty(ref isDelete, name); }
  }
}

コレクションの中の要素に対してプロパティの変更の監視が出来ます。

var c = new ObservableCollection<Person>();
c.Add(new Person());
c.Add(new Person());
c.Add(new Person());

c.ObserveElementProperty(x => x.IdDelete).Subscribe(x => ...);

c[0].IsDelete = true; // subscribeに通知がいく