У меня проблемы с выяснением, как это сделать.У меня есть два экземпляра (источник и цель), которые реализуют INotifyPropertyChanged
, и я отслеживаю событие PropertyChanged
для обоих.То, что я хочу сделать, - это запускать действие в любое время, когда значение source.PropertyChanged
повышено, до значения target.PropertyChanged
.Я могу сделать это просто так:
INotifyPropertyChanged source;
INotifyPropertyChanged target;
var sourcePropertyChanged = Observable
.FromEvent<PropertyChangedEventArgs>(source, "PropertyChanged")
.Where(x => x.EventArgs.PropertyName == sourcePropertyName);
var targetPropertyChanged = Observable
.FromEvent<PropertyChangedEventArgs>(target, "PropertyChanged")
.Where(x => x.EventArgs.PropertyName == targetPropertyName);
sourcePropertyChanged
.TakeUntil(targetPropertyChanged)
.ObserveOnDispatcher()
.Subscribe(_ => /*Raises target.PropertyChanged for targetPropertyName*/);
Проблема, с которой я столкнулся, заключается в том, что я хочу игнорировать уведомления PropertyChanged
, вызванные действиями, и прекращать принимать значения только тогда, когдаподнятый внешним источником.Есть ли хороший способ добиться этого?