可以忽略ReactiveObject的初始值吗?

时间:2015-04-14 20:33:36

标签: c# reactiveui

使用ReactiveUI,是否可以忽略给定ReactiveObject的初始值?

例如,我有一个ViewModel我初始化,然后我在ViewModel上WhenAnyValue。我立即收到通知我所选房产的价值为null。是的,我可以.Where(x => x != null)来避免这种情况,但有可能以后知道它null是有价值的。

换句话说,我希望在第一次更改值后开始收到通知。

我不太明白我怎么能这样做,或者甚至可能。我在Initial Value的源代码中看到对WantsAnyValue/WantsAny的引用,但我不清楚如何设置该初始值。

3 个答案:

答案 0 :(得分:5)

根据OP的要求将评论移至答案;)

忽略init的第一个OnNext。

this.WhenAnyValue( model => model.Field ).Skip( 1 )

答案 1 :(得分:0)

我认为ObservableForProperty是您正在寻找的。它有一个" skipInitial"参数。

答案 2 :(得分:0)

在这种情况下你应该使用ObservableForProperty。

WhenAnyValue将立即通知订阅者的初始值以及将来的任何新值,而ObservableForProperty仅通知新值并跳过初始值。