protected override void OnNavigatedFrom(NavigationEventArgs e) { if (e.IsNavigationInitiator && e.NavigationMode == NavigationMode.Back) { Collection.LocomotivesIDs.CollectionChanged -= GroupItems_CollectionChanged; Collection.AccessoriesIDs.CollectionChanged -= GroupItems_CollectionChanged; Collection = null; } }
private void ValidateCollection(UserItemsGroup collection) { // remove nonexisting ids: var deletedItems = collection.LocomotivesIDs.Except(App.EcosModel.LocomotiveManager.Items.Select(item => item.ID)).ToList(); foreach (var id in deletedItems) collection.LocomotivesIDs.Remove(id); var deletedItems2 = collection.AccessoriesIDs.Except(App.EcosModel.AccessoryManager.Items.Select(item => item.ID)).ToList(); foreach (var id in deletedItems2) collection.AccessoriesIDs.Remove(id); App.SaveProfiles(); }
protected override void OnNavigatedTo(NavigationEventArgs e) { btnOperateAccessories.IsEnabled = btnCheckAccessories.IsEnabled = !App.IsTrial; if (e.IsNavigationInitiator && e.NavigationMode == NavigationMode.New) { isNew = Collection == null; if (isNew) Collection = new UserItemsGroup(); Collection.LocomotivesIDs.CollectionChanged += GroupItems_CollectionChanged; Collection.AccessoriesIDs.CollectionChanged += GroupItems_CollectionChanged; ucCollectionLocomotivesList.IDs = Collection.LocomotivesIDs; ucCollectionAccessoriesList.IDs = Collection.AccessoriesIDs; PopulateItemsCheckLists(); SetUIVisibility(); } }