I'm having problems figuring out how to do this. I have two instances (source & target) that implement INotifyPropertyChanged
and I'm tracking the PropertyChanged
event for both. What I want to do is run an action any time source.PropertyChanged
is raised until target.PropertyChanged
is raised. I can do that just fine like this:
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*/);
The problem I'm having is I want to ignore the PropertyChanged
notifications caused by the actions and only stop taking values when the PropertyChanged
event is raised by an external source. Is there a good way to get that to happen?