public void NominalTest() { var pcQueue = new Queue <PropertyChangedEventArgs>(); var selector = new CollectionSelector <string>(new [] { "Item 1", "Item 2", "Item 3" }); selector.PropertyChanged += (s, p) => pcQueue.Enqueue(p); Check(selector, -1, null); pcQueue.IsEmpty(); selector.SelectedIndex = 2; Check(selector, 2, "Item 3"); pcQueue.CheckNext(Properties.SelectedIndexPropertyChanged) .CheckNext(Properties.SelectedItemPropertyChanged); selector.SelectedIndex = -1; Check(selector, -1, null); pcQueue.CheckNext(Properties.SelectedIndexPropertyChanged) .CheckNext(Properties.SelectedItemPropertyChanged); selector.SelectedItem = "Item 2"; Check(selector, 1, "Item 2"); pcQueue.CheckNext(Properties.SelectedItemPropertyChanged) .CheckNext(Properties.SelectedIndexPropertyChanged); selector.SelectedItem = "Item 2"; Check(selector, 1, "Item 2"); pcQueue.IsEmpty(); selector.SelectedIndex = 1; Check(selector, 1, "Item 2"); pcQueue.IsEmpty(); }
public void DeleteAndMoveSelectedItemTest() { var observableCollection = new ObservableCollection <int>(new List <int>() { 1, 2, 3, 4, 5, 6 }); var rool = new ReadOnlyObservableList <int>(observableCollection); var cs = new CollectionSelector <int>(rool); cs.SelectedIndex = 1; Assert.AreEqual(cs.Items.Count, 6); //[1 2 3 4 5 6] //SelectedIndex = 1 //SelectedItem = 2 observableCollection.Remove(2); Assert.AreEqual(cs.SelectedIndex, 1); Assert.AreEqual(cs.SelectedItem, 3); Assert.AreEqual(cs.Items.Count, 5); //[1 3 4 5 6] //SelectedIndex = 1 //SelectedItem = 3 observableCollection.Move(1, 3); Assert.AreEqual(cs.SelectedIndex, 3); Assert.AreEqual(cs.SelectedItem, 3); Assert.AreEqual(cs.Items.Count, 5); //[1 4 5 3 6] //SelectedIndex = 3 //SelectedItem = 3 }
public void SelectedIndexAndItemTest() { var observableCollection = new ObservableCollection <int>(new List <int>() { 1, 2, 3, 4, 5, 6 }); var rool = new ReadOnlyObservableList <int>(observableCollection); var cs = new CollectionSelector <int>(rool); cs.SelectedItemChanged += Load1; cs.SelectedItemChanging += Load2; cs.SelectedIndex = 1; Assert.AreEqual(cs.SelectedItem, 2); Assert.AreEqual(changingItems.Count, 1); Assert.AreEqual(changingItems[0], -1); Assert.AreEqual(changeItems.Count, 1); Assert.AreEqual(changeItems[0], 1); }
public IEnumerable <QueryToken> GetAllTokens(QueryToken parent) { var info = metas.GetOrAdd(parent, qt => { Expression <Func <T, V> > lambda = t => ValueSelector.Evaluate(CollectionSelector.Evaluate(t).SingleOrDefaultEx() !); Expression e = MetadataVisitor.JustVisit(lambda, MetaExpression.FromToken(qt, typeof(T))); var result = new ExtensionRouteInfo(); if (e is MetaExpression me && me.Meta is CleanMeta cm && cm.PropertyRoutes.Any()) { var cleanType = me !.Type.CleanType(); result.PropertyRoute = cm.PropertyRoutes.Only(); result.Implementations = me.Meta.Implementations; result.Format = ColumnDescriptionFactory.GetFormat(cm.PropertyRoutes); result.Unit = ColumnDescriptionFactory.GetUnit(cm.PropertyRoutes); } return(result); });
public void InsertElementTest() { var observableCollection = new ObservableCollection <int>(new List <int>() { 1, 2, 3, 4, 5, 6 }); var rool = new ReadOnlyObservableList <int>(observableCollection); var cs = new CollectionSelector <int>(rool); cs.SelectedIndex = 2; //[1 2 3 4 5 6] //SelectedIndex = 2 //SelectedItem = 3 Assert.AreEqual(cs.SelectedIndex, 2); Assert.AreEqual(cs.SelectedItem, 3); Assert.AreEqual(cs.Items.Count, 6); observableCollection.Insert(2, 7); Assert.AreEqual(cs.Items.Count, 7); //[1 2 7 3 4 5 6] //SelectedIndex = 3 //SelectedItem = 3 Assert.AreEqual(cs.Items[0], 1); Assert.AreEqual(cs.Items[1], 2); Assert.AreEqual(cs.Items[2], 7); Assert.AreEqual(cs.Items[3], 3); Assert.AreEqual(cs.Items[4], 4); Assert.AreEqual(cs.Items[5], 5); Assert.AreEqual(cs.Items[6], 6); Assert.AreEqual(cs.SelectedIndex, 3); Assert.AreEqual(cs.SelectedItem, 3); }
public void AddElementTest() { var observableCollection = new ObservableCollection <int>(new List <int>() { 1, 2, 3, 4, 5, 6 }); var rool = new ReadOnlyObservableList <int>(observableCollection); var cs = new CollectionSelector <int>(rool); cs.SelectedIndex = 1; Assert.AreEqual(cs.SelectedIndex, 1); Assert.AreEqual(cs.SelectedItem, 2); Assert.AreEqual(cs.Items.Count, 6); //[1 2 3 4 5 6] //SelectedIndex = 1 //SelectedItem = 2 observableCollection.Add(7); Assert.AreEqual(cs.Items.Count, 7); Assert.AreEqual(cs.Items[0], 1); Assert.AreEqual(cs.Items[1], 2); Assert.AreEqual(cs.Items[2], 3); Assert.AreEqual(cs.Items[3], 4); Assert.AreEqual(cs.Items[4], 5); Assert.AreEqual(cs.Items[5], 6); Assert.AreEqual(cs.Items[6], 7); Assert.AreEqual(cs.SelectedIndex, 1); Assert.AreEqual(cs.SelectedItem, 2); observableCollection.Clear(); Assert.AreEqual(cs.SelectedIndex, -1); Assert.AreEqual(cs.SelectedItem, 0); }
private CollectionSelector <int> Copy(CollectionSelector <int> cs1) { var observableCollection = new ObservableCollection <int>(); for (int i = 0; i < cs1.Items.Count; i++) { observableCollection.Add(cs1.Items[i]); } var rool = new ReadOnlyObservableList <int>(observableCollection); CollectionSelector <int> cs = new CollectionSelector <int>(rool); var ss = cs1.SelectedItem; for (int i = 0; i < cs.Items.Count; i++) { if (cs.Items[i] == ss) { cs.SelectedIndex = i; } } return(cs); }
private static void Check(CollectionSelector <string> selector, int selectedIndex, string selectedItem) { Assert.AreEqual(selectedIndex, selector.SelectedIndex, "SelectedIndex"); Assert.AreEqual(selectedItem, selector.SelectedItem, "SelectedItem"); }