У меня есть IObservable<string>
, который Switch()
исключается каждый раз, когда другое IObservable
выдает значение, например так:
IObservable<string> Invalidated => stateChanged
.Select(state => state.CanExecuteChanged.Select(x => _myString))
.Switch()
.StartWith(_myString);
Здесь stateChanged
является IObservable<State>
и CanExecuteChanged
является IObservable<bool>
. Другими словами, каждый раз, когда состояние изменяется, я отписываюсь от наблюдаемой state
CanExecuteChanged
и подписываюсь на наблюдаемую, предоставляемую новым состоянием.
Проблема связана с StartWith
. В первый раз, когда я подписываюсь , я не хочу, чтобы значение выдавалось . Однако каждый раз, когда Switch
выполняется в результате изменения состояния , я хочу, чтобы значение было передано . Иными словами, при первоначальной подписке на Invalidated
значение не должно выдаваться, но при каждом Switch
, следовательно, я хочу, чтобы значение выдавалось. Могу ли я достичь этого, и если да, то как?