public void AttachFilter(ISynchronizedViewFilter <T, TView> filter) { lock (SyncRoot) { this.filter = filter; foreach (var(value, view) in ringBuffer) { filter.InvokeOnAttach(value, view); } } }
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; } }
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; } }
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); }