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");
 }