本文整理汇总了C#中System.Windows.Data.PagedCollectionView.IndexOf方法的典型用法代码示例。如果您正苦于以下问题:C# PagedCollectionView.IndexOf方法的具体用法?C# PagedCollectionView.IndexOf怎么用?C# PagedCollectionView.IndexOf使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Windows.Data.PagedCollectionView
的用法示例。
在下文中一共展示了PagedCollectionView.IndexOf方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: InsertWithSortingOnUnsharedPropertyTest
public void InsertWithSortingOnUnsharedPropertyTest()
{
// we will create a collection of type object, with instances of ClassA and ClassB,
// which are not related classes. however, they share a property of the same name and type
ObservableCollection<object> collection = new ObservableCollection<object>()
{
new ClassA(){IntProperty=1, SomeProperty="A"},
new ClassB(){IntProperty=3, SomeProperty=true},
new ClassA(){IntProperty=5, SomeProperty="B"},
new ClassB(){IntProperty=7, SomeProperty=false},
};
PagedCollectionView pcv = new PagedCollectionView(collection);
// first verify that we can sort
pcv.SortDescriptions.Add(new SortDescription("IntProperty", ListSortDirection.Descending));
Assert.AreEqual(typeof(ClassB), pcv[0].GetType());
Assert.AreEqual(typeof(ClassA), pcv[1].GetType());
Assert.AreEqual(typeof(ClassB), pcv[2].GetType());
Assert.AreEqual(typeof(ClassA), pcv[3].GetType());
// next insert an item and verify that it gets correctly inserted based on
// the correct sort index
ClassA addItem = new ClassA() { IntProperty = 4, SomeProperty = "C" };
collection.Add(addItem);
Assert.AreEqual(2, pcv.IndexOf(addItem));
// now test on the other property that has the same name
// but different type. we should not get an error, and just
// treat the variable as a null or default value
pcv.SortDescriptions.Clear();
pcv.SortDescriptions.Add(new SortDescription("SomeProperty", ListSortDirection.Ascending));
Assert.AreEqual("3 True", pcv[0].ToString());
Assert.AreEqual("7 False", pcv[1].ToString());
Assert.AreEqual("1 A", pcv[2].ToString());
Assert.AreEqual("5 B", pcv[3].ToString());
Assert.AreEqual("4 C", pcv[4].ToString());
}
示例2: AddRemoveEventsWithListBoxTest
public void AddRemoveEventsWithListBoxTest()
{
ObservableCollection<TestClass> collection = new ObservableCollection<TestClass>()
{
new TestClass { IntProperty = 1, StringProperty = "A" },
new TestClass { IntProperty = 1, StringProperty = "C" },
new TestClass { IntProperty = 2, StringProperty = "D" }
};
PagedCollectionView cv = new PagedCollectionView(collection);
ListBox lb = new ListBox();
lb.ItemsSource = cv;
this.CreateAsyncTask(
lb,
delegate
{
Assert.AreEqual(3, lb.Items.Count);
cv.AddNew();
cv.CommitNew();
Assert.AreEqual(4, lb.Items.Count);
cv.RemoveAt(3);
Assert.AreEqual(3, lb.Items.Count);
cv.SortDescriptions.Add(new System.ComponentModel.SortDescription("StringProperty", System.ComponentModel.ListSortDirection.Ascending));
TestClass newItem1 = new TestClass() { StringProperty = "B", IntProperty = 2 };
collection.Add(newItem1);
// Should have inserted into due to sorting
// {A, [B], C, D}
Assert.AreEqual(1, cv.IndexOf(newItem1));
Assert.AreEqual(1, lb.Items.IndexOf(newItem1));
cv.GroupDescriptions.Add(new PropertyGroupDescription("IntProperty"));
// Should now be grouped as
// {1A, 1C}
// {2B, 2D}
Assert.AreEqual(2, lb.Items.IndexOf(newItem1));
TestClass newItem2 = new TestClass() { StringProperty = "E", IntProperty = 1 };
collection.Add(newItem2);
// Should have inserted into due here to sorting/grouping
// {1A, 1C, [1E]}
// {2B, 2D}
Assert.AreEqual(2, cv.IndexOf(newItem2));
Assert.AreEqual(2, lb.Items.IndexOf(newItem2));
// Testing that with sorting/grouping, item is removed from the correct index
cv.RemoveAt(1);
Assert.AreEqual(newItem2, lb.Items[1]);
// Test 'Replace' operation.
TestClass newItem3 = new TestClass() { StringProperty = "F", IntProperty = 2 };
TestClass replacedItem = collection[0];
collection[0] = newItem3;
// This operation should have deleted old and added new
// {[-deleted-], 1E}
// {2B, 2D, [2F]}
Assert.AreEqual(-1, lb.Items.IndexOf(replacedItem));
Assert.AreEqual(3, lb.Items.IndexOf(newItem3));
});
EnqueueTestComplete();
}