public void Clear_INotifyPropertyChangedItems_RemovesPropertyChangedEventHandlers() { var item1 = new Item(); var item2 = new Item(); var list = new List <Item> { item1, item2, null }; var bindingList = new BindingSet <Item>(list); Assert.Equal(1, item1.InvocationList.Length); Assert.Equal(1, item2.InvocationList.Length); bool calledListChanged = false; bindingList.ListChanged += (object sender, ListChangedEventArgs e) => { calledListChanged = true; Assert.Equal(ListChangedType.Reset, e.ListChangedType); Assert.Equal(-1, e.NewIndex); }; bindingList.Clear(); Assert.True(calledListChanged); Assert.Empty(bindingList); Assert.Null(item1.InvocationList); Assert.Null(item2.InvocationList); }
public void Clear_Invoke_Success() { var bindingList = new BindingSet <object> { new object(), new object() }; bool calledListChanged = false; bindingList.ListChanged += (object sender, ListChangedEventArgs e) => { calledListChanged = true; Assert.Equal(ListChangedType.Reset, e.ListChangedType); Assert.Equal(-1, e.NewIndex); }; bindingList.Clear(); Assert.True(calledListChanged); Assert.Empty(bindingList); }