かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

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に通知がいく