使用ReactiveUI,是否可以忽略给定ReactiveObject的初始值?
例如,我有一个ViewModel我初始化,然后我在ViewModel上WhenAnyValue
。我立即收到通知我所选房产的价值为null
。是的,我可以.Where(x => x != null)
来避免这种情况,但有可能以后知道它null
是有价值的。
换句话说,我希望在第一次更改值后开始收到通知。
我不太明白我怎么能这样做,或者甚至可能。我在Initial Value
的源代码中看到对WantsAnyValue/WantsAny
的引用,但我不清楚如何设置该初始值。
答案 0 :(得分:5)
根据OP的要求将评论移至答案;)
忽略init的第一个OnNext。
this.WhenAnyValue( model => model.Field ).Skip( 1 )
答案 1 :(得分:0)
我认为ObservableForProperty是您正在寻找的。它有一个" skipInitial"参数。
答案 2 :(得分:0)
在这种情况下你应该使用ObservableForProperty。
WhenAnyValue将立即通知订阅者的初始值以及将来的任何新值,而ObservableForProperty仅通知新值并跳过初始值。