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!!