本文整理汇总了C#中ReactiveList.CreateDerivedBindingList方法的典型用法代码示例。如果您正苦于以下问题:C# ReactiveList.CreateDerivedBindingList方法的具体用法?C# ReactiveList.CreateDerivedBindingList怎么用?C# ReactiveList.CreateDerivedBindingList使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ReactiveList
的用法示例。
在下文中一共展示了ReactiveList.CreateDerivedBindingList方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DerivedCollectionsShouldRaiseListChangedEvents
public void DerivedCollectionsShouldRaiseListChangedEvents()
{
var input = new[] { "Foo", "Bar", "Baz", "Bamf" };
var fixture = new ReactiveList<TestFixture>(
input.Select(x => new TestFixture() { IsOnlyOneWord = x }));
IBindingList output = fixture.CreateDerivedBindingList(new Func<TestFixture, string>(x => x.IsOnlyOneWord));
var capturedEvents = new List<ListChangedEventArgs>();
output.ListChanged += (o, e) => capturedEvents.Add(e);
input.AssertAreEqual((IEnumerable<string>)output);
fixture.Add(new TestFixture() { IsOnlyOneWord = "Hello" });
Assert.Equal(capturedEvents.Last().ListChangedType,ListChangedType.ItemAdded);
Assert.Equal(5, output.Count);
Assert.Equal("Hello", output[4]);
fixture.RemoveAt(4);
Assert.Equal(capturedEvents.Last().ListChangedType, ListChangedType.ItemDeleted);
Assert.Equal(4, output.Count);
//replacing results in
//1 itemdeleted
//2 itemadded
fixture[1] = new TestFixture() { IsOnlyOneWord = "Goodbye" };
Assert.Equal(4, output.Count);
Assert.Equal("Goodbye", output[1]);
Assert.Equal(capturedEvents[capturedEvents.Count - 2].ListChangedType, ListChangedType.ItemDeleted);
Assert.Equal(capturedEvents[capturedEvents.Count - 1].ListChangedType, ListChangedType.ItemAdded);
fixture.Clear();
Assert.Equal(0, output.Count);
Assert.Equal(capturedEvents.Last().ListChangedType, ListChangedType.Reset);
}