public void ChangeEvent_OnModelInsideCollection_ShouldFireCollectionChangeEvent() { var firstModel = new SimpleModel {Id = 3}; var c = new ViewModelCollection<SimpleModel>(typeof(SimpleModel)) { firstModel, new SimpleModel {Id = 6}, new SimpleModel {Id = 10} }; var collectionHasChanged = false; c.Bind("change", e => collectionHasChanged = true); firstModel.Trigger("change"); Assert.IsTrue(collectionHasChanged); }
public void ChangeEvent_OnModelInsideCollection_ShouldNotFireCollectionChangeEventAfterModelWasRemovedFromCollection() { var firstModel = new SimpleModel {Id = 3}; var c = new ViewModelCollection<SimpleModel>(typeof(SimpleModel)) { firstModel, new SimpleModel {Id = 6}, new SimpleModel {Id = 10} }; var collectionHasChanged = false; c.Bind("change", e => collectionHasChanged = true); c.Remove(firstModel, new ViewSetOptions {IsSilent = true}); Assert.IsFalse(collectionHasChanged, "Remove with silent should not trigger change"); firstModel.Trigger("change"); Assert.IsFalse(collectionHasChanged, "triggering the change event on an item that has been removed from a collection should not trigger the change event on the collection"); }