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;
     }
 }
        protected override void OnNavigatedFrom(NavigationEventArgs e)
        {
            base.OnNavigatedFrom(e);

            if (e.NavigationMode == NavigationMode.Back)
            {
                Collection.LocomotivesIDs.CollectionChanged -= CollectionItems_CollectionChanged;
                Collection.AccessoriesIDs.CollectionChanged -= CollectionItems_CollectionChanged;
                Collection = null;
            }
        }
        private void ValidateCollection(UserItemsGroup collection)
        {
            // remove nonexisting ids:

            var deletedItems = collection.LocomotivesIDs.Except(App.EcosModel.LocomotivesManager.Items.Select(item => item.ID)).ToList();
            foreach (var id in deletedItems)
                collection.LocomotivesIDs.Remove(id);

            var deletedItems2 = collection.AccessoriesIDs.Except(App.EcosModel.AccessoriesManager.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();
            }
        }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            if (e.NavigationMode == NavigationMode.New)
            {
                Collection = e.Parameter as UserItemsGroup;

                isNew = Collection == null;
                if (isNew)
                    Collection = new UserItemsGroup();

                Collection.LocomotivesIDs.CollectionChanged += CollectionItems_CollectionChanged;
                Collection.AccessoriesIDs.CollectionChanged += CollectionItems_CollectionChanged;

                SetUIVisibility();

                ValidateItems();
            }
        }