Exemplo n.º 1
0
        /// <summary>Observe CollectionChanged:Replace and take single item.</summary>
        public static IObservable <OldNewPair <T> > ObserveReplaceChanged <T>(this INotifyCollectionChanged source)
        {
            var result = source.CollectionChangedAsObservable()
                         .Where(e => e.Action == NotifyCollectionChangedAction.Replace)
                         .Select(e => new OldNewPair <T>((T)e.OldItems[0], (T)e.NewItems[0]));

            return(result);
        }
Exemplo n.º 2
0
        /// <summary>Observe CollectionChanged:Move.</summary>
        public static IObservable <OldNewPair <T[]> > ObserveMoveChangedItems <T>(this INotifyCollectionChanged source)
        {
            var result = source.CollectionChangedAsObservable()
                         .Where(e => e.Action == NotifyCollectionChangedAction.Move)
                         .Select(e => new OldNewPair <T[]>(e.OldItems.Cast <T>().ToArray(), e.NewItems.Cast <T>().ToArray()));

            return(result);
        }
Exemplo n.º 3
0
        /// <summary>Observe CollectionChanged:Remove.</summary>
        public static IObservable <T[]> ObserveRemoveChangedItems <T>(this INotifyCollectionChanged source)
        {
            var result = source.CollectionChangedAsObservable()
                         .Where(e => e.Action == NotifyCollectionChangedAction.Remove)
                         .Select(e => e.OldItems.Cast <T>().ToArray());

            return(result);
        }
Exemplo n.º 4
0
        /// <summary>Observe CollectionChanged:Remove and take single item.</summary>
        public static IObservable <T> ObserveRemoveChanged <T>(this INotifyCollectionChanged source)
        {
            var result = source.CollectionChangedAsObservable()
                         .Where(e => e.Action == NotifyCollectionChangedAction.Remove)
                         .Select(e => (T)e.OldItems[0]);

            return(result);
        }
Exemplo n.º 5
0
        /// <summary>Observe CollectionChanged:Reset.</summary>
        public static IObservable <Unit> ObserveResetChanged <T>(this INotifyCollectionChanged source)
        {
            var result = source.CollectionChangedAsObservable()
                         .Where(e => e.Action == NotifyCollectionChangedAction.Reset)
                         .Select(_ => new Unit());

            return(result);
        }
Exemplo n.º 6
0
 /// <summary>
 /// Observe CollectionChanged:Replace.
 /// </summary>
 public static IObservable <OldNewPair <T[]> > ObserveReplaceChangedItems <T>(this INotifyCollectionChanged source) =>
 source.CollectionChangedAsObservable()
 .Where(e => e.Action == NotifyCollectionChangedAction.Replace)
 .Select(e => new OldNewPair <T[]>(e.OldItems.Cast <T>().ToArray(), e.NewItems.Cast <T>().ToArray()));
Exemplo n.º 7
0
 /// <summary>
 /// Observe CollectionChanged:Move and take single item.
 /// </summary>
 public static IObservable <OldNewPair <T> > ObserveMoveChanged <T>(this INotifyCollectionChanged source) =>
 source.CollectionChangedAsObservable()
 .Where(e => e.Action == NotifyCollectionChangedAction.Move)
 .Select(e => new OldNewPair <T>((T)e.OldItems[0], (T)e.NewItems[0]));
Exemplo n.º 8
0
 /// <summary>
 /// Observe CollectionChanged:Add.
 /// </summary>
 public static IObservable <T[]> ObserveAddChangedItems <T>(this INotifyCollectionChanged source) =>
 source.CollectionChangedAsObservable()
 .Where(e => e.Action == NotifyCollectionChangedAction.Add)
 .Select(e => e.NewItems.Cast <T>().ToArray());
Exemplo n.º 9
0
 /// <summary>
 /// Observe CollectionChanged:Add and take single item.
 /// </summary>
 public static IObservable <T> ObserveAddChanged <T>(this INotifyCollectionChanged source) =>
 source.CollectionChangedAsObservable()
 .Where(e => e.Action == NotifyCollectionChangedAction.Add)
 .Select(e => (T)e.NewItems[0]);