我在解決如何執行此操作時遇到問題。我有兩個實例(源&目標),實現INotifyPropertyChanged
,我正在跟蹤兩者的PropertyChanged
事件。我想要做的就是在source.PropertyChanged
的任何時候執行動作,直到target.PropertyChanged
被提出。我能做到這一點就好像這樣:Rx:忽略訂閱者造成的更新
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
通知,而只能停在PropertyChanged
事件是由外部源引發取值。有沒有一種好方法來實現這一點?
你是什麼意思'PropertyChanged通知的行動'?什麼行爲? – 2010-10-27 15:19:52
@羅納爾我更新了我的解釋,希望能夠更清楚一些,但通過操作我的意思是不返回值的函數。由'/ *表示的部分爲targetPropertyName * /'引發target.PropertyChanged。 – 2010-10-27 15:31:52