私がやっていることはこれです:
Item.PropertyChanged += (sender, args) =>
{
if(sender is IInterface)
DoSomethingWith(((IInterface)sender).PropertyFromInterface);
}
RxUI でそのようなストリームを実装するにはどうすればよいですか?
私はこれを試しました:
this.WhenAny(x => (x.Item as IInterface).PropertyFromInterface, x.GetValue())
.Subscribe(DoSomethingWith);
しかし、それはできないようです。
このようなプロパティを作成する必要がありますか?->
private IInterface ItemAsInterface { get { return Item as IInterface; } }
今のところ、次のように回避策を作成しました。
this.WhenAny(x => x.Item, x => x.GetValue()).OfType<IInterface>()
.Select(x => x.PropertyFromInterface).DistinctUntilChanged()
.Subscribe(DoSomethingWith);
しかし、私が実際に望んでいるのは、Item が IInterface である間に、「PropertyFromInterface」の propertychanged 更新を取得することです。