1
我有INotifyPropertyChanged對象的集合,並希望將所有PropertyChanged事件流化爲單個可觀察序列以供進一步處理。將集合中的PropertyChanged事件集合到一個IObservable中<EventPattern <PropertyChangedEventArgs >>
下面是一個代碼
IObservable<EventPattern<PropertyChangedEventArgs>> _allEvents = null;
// Items contains collection of item, which implements INotifyPropertyChanged
foreach (var item in Items)
{
var seq = Observable.FromEventPattern<PropertyChangedEventArgs>(item, "PropertyChanged");
if (_allEvents == null)
_allEvents = seq;
else
_allEvents.Merge(seq);
}
// subscribe to the aggregated observable sequence
if (_allEvents != null)
_allEvents.Subscribe(evt => Trace.WriteLine(" Property Changed -> " + evt.EventArgs.PropertyName));
一個單一的訂閱已經不在這裏工作由於某種原因在聚集序列。 看起來像我聚合(使用Reactive Extensions的合併功能)不正確。但是,在循環內訂閱完美。
任何人都可以在這裏幫助我,如何將多個事件流聚合成具有反應式擴展的事件流?
感謝
好,簡單,乾淨,有效。非常感謝 – user1153896 2012-02-22 07:29:42