public static IObservable <TProp> WhenAny <TProp>(this IObservablePropertyChanged @this, Expression <Func <TProp> > prop)
        {
            var name = Reflex.PropertyName(prop);
            var func = prop.CompileFast();

            return(@this.PropertyChangedObservable.Where(s => s == name).Select(_ => func()));
        }
        public static IObservable <PropertyChangeData> WhenPropertiesChanged(this IObservablePropertyChanged observable, params string[] propertyNames)
        {
            if (observable == null)
            {
                throw new ArgumentNullException(nameof(observable), $"{nameof(observable)} is null.");
            }
            if (propertyNames == null || propertyNames.Length == 0)
            {
                throw new ArgumentException($"{nameof(propertyNames)} is null or empty.", nameof(propertyNames));
            }

            return(observable.Changed.ForProperties(propertyNames));
        }
        public static IObservable <PropertyChangeData> WhenPropertyChanged(this IObservablePropertyChanged observable, string propertyName)
        {
            if (observable == null)
            {
                throw new ArgumentNullException(nameof(observable), $"{nameof(observable)} is null.");
            }
            if (string.IsNullOrEmpty(propertyName))
            {
                throw new ArgumentException($"{nameof(propertyName)} is null or empty.", nameof(propertyName));
            }

            return(observable.Changed.ForProperty(propertyName));
        }
예제 #4
0
 public static IObservable <PropertyChangedData> WhenPropertyChanged(
     this IObservablePropertyChanged changed, string propertyName) =>
 changed.Changed.Where(p => p.PropertyName == propertyName);
예제 #5
0
 public static IObservable <PropertyChangedData <TProperty> > WhenPropertiesChanged <TProperty>(
     this IObservablePropertyChanged changed, params string[] propertyNames) =>
 changed.Changed.Where(p => propertyNames.Contains(p.PropertyName)).Select(data => (PropertyChangedData <TProperty>)data);
예제 #6
0
 public static IObservable <PropertyChangedData> WhenPropertiesChanged(
     this IObservablePropertyChanged changed, params string[] propertyNames) =>
 changed.Changed.Where(p => propertyNames.Contains(p.PropertyName));
예제 #7
0
 public static IObservable <PropertyChangedData <TProperty> > WhenPropertyChanged <TProperty>(
     this IObservablePropertyChanged changed, string propertyName) =>
 changed.Changed.Where(p => p.PropertyName == propertyName).Select(data => (PropertyChangedData <TProperty>)data);
예제 #8
0
 public static IObservable <PropertyChangedData <TProperty> > WhenPropertyChanged <TProperty>(this IObservablePropertyChanged changed, String propertyName)
 {
 }
예제 #9
0
 public static IObservable <PropertyChangedData <TProperty> > WhenPropertiesChanged <TProperty>(this IObservablePropertyChanged changed, [ParamArrayAttribute()] String[] propertyNames)
 {
 }