可以忽略 ReactiveObject 的初始值吗?

Possible to ignore the initial value for a ReactiveObject?

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

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

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

我不太清楚如何做到这一点,或者是否可能。我在 WantsAnyValue/WantsAny 的源代码中看到了对 Initial Value 的引用,但我不清楚如何设置该初始值。

我想 ObservableForProperty 就是您要找的。它有一个 "skipInitial" 参数。

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

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

根据 OP 的要求将我的评论移到答案中;)

在初始化时忽略第一个 OnNext。

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