public void MoveItemsTest() { var observableCollection = new ObservableCollection <int>(new List <int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }); var rool = new ReadOnlyObservableList <int>(observableCollection); FilteredReadOnlyObservableCollection <int> frooc = new FilteredReadOnlyObservableCollection <int>(rool, i => i % 2 == 0); Assert.AreEqual(frooc.Count, 5); //[2 4 6 8 10] observableCollection.Move(1, 7); //[4 6 8 2 10] observableCollection.Move(3, 5); //[4 6 8 2 10] observableCollection.Move(3, 2); //[6 4 8 2 10] int[] a = new[] { 6, 4, 8, 2, 10 }; var iterator = frooc.GetEnumerator(); int j = 0; while (iterator.MoveNext()) { Assert.AreEqual(iterator.Current, a[j]); j++; } Assert.AreEqual(frooc.Count, 5); }
public void DeleteItemsTest() { var observableCollection = new ObservableCollection <int>(new List <int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }); var rool = new ReadOnlyObservableList <int>(observableCollection); FilteredReadOnlyObservableCollection <int> frooc = new FilteredReadOnlyObservableCollection <int>(rool, i => i % 2 == 0); Assert.AreEqual(frooc.Count, 5); observableCollection.Remove(3); observableCollection.RemoveAt(1); observableCollection.Remove(9); int item = 4; var iterator = frooc.GetEnumerator(); while (iterator.MoveNext()) { Assert.AreEqual(iterator.Current, item); item += 2; } Assert.AreEqual(item, 12); Assert.AreEqual(frooc.Count, 4); }
public void AddItemsTest() { var observableCollection = new ObservableCollection <int>(new List <int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }); var rool = new ReadOnlyObservableList <int>(observableCollection); FilteredReadOnlyObservableCollection <int> frooc = new FilteredReadOnlyObservableCollection <int>(rool, i => i % 2 == 0); Assert.AreEqual(frooc.Count, 5); (rool as INotifyCollectionChanged).CollectionChanged += (sender, args) => { Console.WriteLine("F**K"); }; observableCollection.Add(11); observableCollection.Add(12); observableCollection.Add(14); observableCollection.Insert(12, 13); int item = 2; var iterator = frooc.GetEnumerator(); while (iterator.MoveNext()) { Assert.AreEqual(iterator.Current, item); item += 2; } Assert.AreEqual(item, 16); Assert.AreEqual(frooc.Count, 7); }
public ExtensionsViewModel(Dispatcher dispatcher) { _dispatcher = dispatcher; _extensions = new ObservableCollection <LoaderExtension>(); Extensions = FilteredReadOnlyObservableCollection.Create(_extensions, ext => ext.Items.OfType <LoaderConfiguratorType>().Any(), ext => ext.Description); _bridge = new WeakEventBridge(); _bridge.Bind(typeof(Loader), "LoadComplete", WeakEventBridge.AsDelegate <EventArgs>(OnLoaderLoadComplete)); UpdateExtensions(); }
public ColumnConfigurationViewModel(string configurationName, ObservableCollection <FieldMapperGridColumn> columns) : base(typeof(ColumnConfigurationViewModel)) { ConfigurationName = configurationName; Columns = columns; _selectedColumns = new FilteredReadOnlyObservableCollection <FieldMapperGridColumn>(columns, (x) => x.Visible); _availableColumns = new FilteredReadOnlyObservableCollection <FieldMapperGridColumn>(columns, (x) => !x.Visible); ShowColumnCommand = new RelayCommand((o) => ShowColumn(), (o) => SelectedInvisibleColumn != null); HideColumnCommand = new RelayCommand((o) => HideColumn(), (o) => SelectedVisibleColumn != null); OKCommand = new RelayCommand((o) => OK()); MoveSelectedUpCommand = new RelayCommand((o) => MoveSelectedUp(), (o) => SelectedVisibleColumn != null && SelectedVisibleColumn != SelectedColumns.FirstOrDefault()); MoveSelectedDownCommand = new RelayCommand((o) => MoveSelectedDown(), (o) => SelectedVisibleColumn != null && SelectedVisibleColumn != SelectedColumns.LastOrDefault()); MoveAvailableUpCommand = new RelayCommand((o) => MoveAvailableUp(), (o) => SelectedInvisibleColumn != null && SelectedInvisibleColumn != AvailableColumns.FirstOrDefault()); MoveAvailableDownCommand = new RelayCommand((o) => MoveAvailableDown(), (o) => SelectedInvisibleColumn != null && SelectedInvisibleColumn != AvailableColumns.LastOrDefault()); }
public void OperationsTest() { var observableCollection = new ObservableCollection <int>(new List <int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }); var rool = new ReadOnlyObservableList <int>(observableCollection); FilteredReadOnlyObservableCollection <int> frooc = new FilteredReadOnlyObservableCollection <int>(rool, i => i % 2 == 0); Assert.AreEqual(frooc.Count, 10); //[2 4 6 8 10 12 14 16 18 20] observableCollection.Remove(4); //[2 6 8 10 12 14 16 18 20] observableCollection.Move(6, 13); //[2 6 10 12 14 8 16 18 20] observableCollection.Add(22); //[2 6 10 12 14 8 16 18 20 22] observableCollection.Insert(3, 4); //[2 4 6 10 12 14 8 16 18 20 22] observableCollection.RemoveAt(20); //[2 4 6 10 12 14 8 16 18 20] observableCollection[0] = 24; //[24 2 4 6 10 12 14 8 16 18 20] int[] a = new[] { 24, 2, 4, 6, 10, 12, 14, 8, 16, 18, 20 }; var iterator = frooc.GetEnumerator(); int j = 0; while (iterator.MoveNext()) { Assert.AreEqual(iterator.Current, a[j]); j++; } Assert.AreEqual(frooc.Count, a.Length); }
public void ObservableFilterTest() { var collection = new List <Observable>() { new Observable(), new Observable(), new Observable(), new Observable() }; var observableCollection = new ObservableCollection <Observable>(collection); observableCollection[0].Prop = 1; observableCollection[1].Prop = 2; observableCollection[2].Prop = 3; observableCollection[3].Prop = 4; var rool = new ReadOnlyObservableList <Observable>(observableCollection); FilteredReadOnlyObservableCollection <Observable> frooc = new FilteredReadOnlyObservableCollection <Observable>(rool, notify => notify.Subject.Select(x => x % 2 == 0)); Assert.AreEqual(frooc.Count, 2); int i = 0; foreach (var result in frooc.Zip(collection.Where(c => c.Prop % 2 == 0), (actual, expected) => new { actual, expected })) { Assert.AreEqual(result.expected, result.actual); i++; } Assert.AreEqual(i, 2); observableCollection[1].Prop = 5; Assert.AreEqual(frooc.Count, 1); i = 0; foreach (var result in frooc.Zip(collection.Where(c => c.Prop % 2 == 0), (actual, expected) => new { actual, expected })) { Assert.AreEqual(result.expected, result.actual); i++; } Assert.AreEqual(i, 1); }