ReactiveUI と提供されたReactiveCollection<>
クラスを使用しています。
ViewModel にはオブジェクトのコレクションがあり、それらのアイテムの IsValid プロパティを監視するオブザーバブルを作成したいと考えています。
これは私が解決しようとしているシナリオです。私のViewModelのコンストラクターで。
this.Items = new ReactiveCollection<object>();
IObservable<bool> someObservable = // ... how do I watch Items so when
// any items IsValid property changes,
// this observable changes. There
// is an IValidItem interface.
this.TheCommand = new ReactiveCommand(someObservable);
...
interface IValidItem { bool IsValid { get; } }
編集アナの答えは、私をそこに連れて行ってくれました。解決策は次のとおりです。
this.Items = new ReactiveCollection<object>();
this.Items.ChangeTrackingEnabled = true;
var someObservable = this.Items.Changed
.Select(_ => this.Items.All(i => i.IsValid));