Esempio n. 1
0
 public void AttachFilter(ISynchronizedViewFilter <T, TView> filter)
 {
     lock (SyncRoot)
     {
         this.filter = filter;
         foreach (var(value, view) in ringBuffer)
         {
             filter.InvokeOnAttach(value, view);
         }
     }
 }
Esempio n. 2
0
 public void AttachFilter(ISynchronizedViewFilter <KeyValuePair <TKey, TValue>, TView> filter)
 {
     lock (SyncRoot)
     {
         this.filter = filter;
         foreach (var v in dict)
         {
             filter.InvokeOnAttach(new KeyValuePair <TKey, TValue>(v.Key, v.Value.Item1), v.Value.Item2);
         }
     }
 }
 public View(ObservableHashSet <T> source, Func <T, TView> selector)
 {
     this.source   = source;
     this.selector = selector;
     this.filter   = SynchronizedViewFilter <T, TView> .Null;
     this.SyncRoot = new object();
     lock (source.SyncRoot)
     {
         this.dict = source.set.ToDictionary(x => x, x => (x, selector(x)));
         this.source.CollectionChanged += SourceCollectionChanged;
     }
 }
Esempio n. 4
0
 public View(IObservableCollection <T> source, Func <T, TView> selector, bool reverse)
 {
     this.source   = source;
     this.selector = selector;
     this.reverse  = reverse;
     this.filter   = SynchronizedViewFilter <T, TView> .Null;
     this.SyncRoot = new object();
     lock (source.SyncRoot)
     {
         this.ringBuffer = new RingBuffer <(T, TView)>(source.Select(x => (x, selector(x))));
         this.source.CollectionChanged += SourceCollectionChanged;
     }
 }
 public View(ObservableList <T> source, Func <T, TView> selector, bool reverse)
 {
     this.source   = source;
     this.selector = selector;
     this.reverse  = reverse;
     this.filter   = SynchronizedViewFilter <T, TView> .Null;
     this.SyncRoot = new object();
     lock (source.SyncRoot)
     {
         this.list = source.list.Select(x => (x, selector(x))).ToList();
         this.source.CollectionChanged += SourceCollectionChanged;
     }
 }
Esempio n. 6
0
 public void ResetFilter(Action <T, TView> resetAction)
 {
     lock (SyncRoot)
     {
         this.filter = SynchronizedViewFilter <T, TView> .Null;
         if (resetAction != null)
         {
             foreach (var(item, view) in ringBuffer)
             {
                 resetAction(item, view);
             }
         }
     }
 }
 public void ResetFilter(Action <T, TView> resetAction)
 {
     lock (SyncRoot)
     {
         this.filter = SynchronizedViewFilter <T, TView> .Null;
         if (resetAction != null)
         {
             foreach (var(_, (value, view)) in dict)
             {
                 resetAction(value, view);
             }
         }
     }
 }
 internal static void InvokeOnAdd <T, TView>(this ISynchronizedViewFilter <T, TView> filter, (T value, TView view) value, in NotifyCollectionChangedEventArgs <T> eventArgs)
 public static bool IsNullFilter <T, TView>(this ISynchronizedViewFilter <T, TView> filter)
 {
     return(filter == SynchronizedViewFilter <T, TView> .Null);
 }