読者です 読者をやめる 読者になる 読者になる

かずきのBlog@hatena

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

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

NuGet Gallery | ReactiveProperty 2.1.5

2.1.4はちょんぼをしてしまったので欠番です。はい。

v2.1.5

追加

  • IEnumerableからReadOnlyReactiveCollectionを作成する拡張メソッドを追加しました。

解説

今までReadOnlyReactiveCollectionはObservableCollectionかReadOnlyObservableCollectionからしか作成できませんでした。ということで、Livetみたいに自前でコレクションを実装しちゃってるようなライブラリのコレクションからReadOnlyReactiveCollectionを作るのは不可能(自分でやれば出来るけど…)でした。

ということで、今回はIEnumerable + CollectionChangedの組合わせで、ReadOnlyReactiveCollectionを作れるようにしました。

using Livet;
using Reactive.Extensions;



var source = new ObservableSynchronizedCollection<string>();
source.Add("aaa");
source.Add("bbb");

var coll = source.ToReadOnlyReactiveCollection(
    source.ToCollectionChanged<string>(),
    x => x + "!!",
    Scheduler.CurrentThread);

Console.WriteLine("{0} {1}", coll[0], coll[1]); // aaa!! bbb!!

source.Move(1, 0);

Console.WriteLine("{0} {1}", coll[0], coll[1]); // bbb!! aaa!!