public override void OnActivated() { base.OnActivated(); // CollectionModuleBase handles activation of common parts ShelvesList.Activate(); BookDetails.Activate(); UpdateSelectedShelves(); // Show message if there are no books in the collection if (!state_manager.CurrentCollection.Books.Any()) { MessageBus.Current.SendMessage(new InformationMessage("No books in collection, import here", "Go", () => MessageBus.Current.SendMessage(NavigationMessage.Import))); } book_view_models = state_manager.CurrentCollection .Books .Select(b => new BookViewModel(b)) .ToList(); Books = CollectionViewSource.GetDefaultView(book_view_models); Books.Filter = Filter; current_book_disposable = Books.Events() .WhenAnyObservable(x => x.CurrentChanged) .Select(_ => Books.CurrentItem as BookViewModel) .Subscribe(vm => BookDetails.CurrentBook = vm?.Obj); // This is needed to update the book details Books.Refresh(); }
public override void OnDeactivated() { base.OnDeactivated(); // CollectionModuleBase handles deactivation of common parts ShelvesList.Deactivate(); BookDetails.Deactivate(); selected_shelves = null; current_book_disposable.Dispose(); current_book_disposable = null; SearchField.Clear(); // This will also clear the search_results Books = null; book_view_models.DisposeAll(); book_view_models = null; }