Beispiel #1
0
        public static IObservable <EventPattern <PropertyChangedEventArgs> > ToObservable(
            this INotifyPropertyChanged source, string name, bool signalInitial = true)
        {
            var wr         = new WeakReference(source);
            var observable = source.ToObservable()
                             .Where(e => string.IsNullOrEmpty(e.EventArgs.PropertyName) || e.EventArgs.PropertyName == name);

            if (signalInitial)
            {
                return(Observable.Defer(
                           () =>
                {
                    var current = new EventPattern <PropertyChangedEventArgs>(wr.Target, new PropertyChangedEventArgs(name));
                    return Observable.Return(current).Concat(observable);
                }));
            }
            else
            {
                return(observable);
            }
        }