private static Tuple <ThreadSafeBindableCollection <int>, SelectCollection <int, int> > BindingList1To5() { var ints = new ThreadSafeBindableCollection <int>(); ints.AddRange(new[] { 0, 1, 2, 3, 4 }); var sc = new SelectCollection <int, int>(ints, i => - i); return(Tuple.Create(ints, sc)); }
public void RequeryOnSourceChange() { var list = new ThreadSafeBindableCollection <int>(); list.AddRange(Enumerable.Range(1, 100)); var filtered = new WhereCollection <int>(list, i => i % 2 == 0); Assert.Equal(50, filtered.Count); list.Add(3); Assert.Equal(50, filtered.Count); list.Add(4); Assert.Equal(51, filtered.Count); }
public void SendPropertyChangeNotification() { var list = new ThreadSafeBindableCollection <int>(); list.AddRange(Enumerable.Range(1, 100)); var filtered = new WhereCollection <int>(list, i => i % 2 == 0); int ccFired = 0; filtered.PropertyChanged += (s, e) => { Assert.Equal(filtered, s); Assert.Equal("Count", e.PropertyName); ccFired++; }; list.Add(4); Assert.Equal(1, ccFired); }
public void SendListChangeNotification() { var list = new ThreadSafeBindableCollection <int>(); list.AddRange(Enumerable.Range(1, 100)); var filtered = new WhereCollection <int>(list, i => i % 2 == 0); int ccFired = 0; filtered.CollectionChanged += (s, e) => { Assert.Equal(filtered, s); Assert.Equal(NotifyCollectionChangedAction.Reset, e.Action); ccFired++; }; list.Add(4); Assert.Equal(1, ccFired); }