나는 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