public void CanCreateFromIObservableVector() { RunOnUIThread.Execute(() => { var data = new WinRTObservableVector(Enumerable.Range(0, 100).Select(i => string.Format("Item #{0}", i))); var dataSource = new ItemsSourceView(data); var recorder = new CollectionChangeRecorder(dataSource); Verify.AreEqual(100, dataSource.Count); Verify.AreEqual("Item #4", (string)dataSource.GetAt(4)); Verify.IsFalse(dataSource.HasKeyIndexMapping); data.Insert(4, "Inserted Item"); data.RemoveAt(7); data[15] = "Replaced Item"; data.Clear(); VerifyRecordedCollectionChanges( expected: new NotifyCollectionChangedEventArgs[] { CollectionChangeEventArgsConverters.CreateNotifyArgs(NotifyCollectionChangedAction.Add, -1, 0, 4, 1), CollectionChangeEventArgsConverters.CreateNotifyArgs(NotifyCollectionChangedAction.Remove, 7, 1, -1, 0), CollectionChangeEventArgsConverters.CreateNotifyArgs(NotifyCollectionChangedAction.Replace, 15, 1, 15, 1), CollectionChangeEventArgsConverters.CreateNotifyArgs(NotifyCollectionChangedAction.Reset, -1, 0, -1, 0), }, actual: recorder.RecordedArgs); }); }
public void CanCreateFromIBindableIterable() { RunOnUIThread.Execute(() => { var dataSource = new ItemsSourceView(Enumerable.Range(0, 100)); Verify.AreEqual(100, dataSource.Count); Verify.AreEqual(4, dataSource.GetAt(4)); }); }
public void VerifyReadOnlyListCompatibility() { RunOnUIThread.Execute(() => { var collection = new ReadOnlyNotifyPropertyChangedCollection <object>(); var firstItem = "something1"; collection.Data = new ObservableCollection <object>(); collection.Data.Add(firstItem); collection.Data.Add("something2"); collection.Data.Add("something3"); var itemsSourceView = new ItemsSourceView(collection); Verify.AreEqual(3, itemsSourceView.Count); collection.Data.Add("something4"); Verify.AreEqual(4, itemsSourceView.Count); Verify.AreEqual(firstItem, itemsSourceView.GetAt(0)); Verify.AreEqual(0, itemsSourceView.IndexOf(firstItem)); }); }