public MainPage() { this.InitializeComponent(); if (!ViewModelBase.IsInDesignModeStatic) { ViewModel = new MainPageViewModel(); DataContext = ViewModel; this.Loaded += OnLoaded; } }
protected override void SaveState(Dictionary<String, Object> pageState) { MessengerHelper.Unregister(this, MessengerHelper.SearchHistoryDeleted); MessengerHelper.Unregister(this, MessengerHelper.DownloadsDeleted); MessengerHelper.Unregister(this, MessengerHelper.DbLoadCompleted); var state = ViewModel.SaveState(); state.SearchHistoryVerticalOffset = ScrollViewerHelpers.GetVerticalOffset(searchHistoryListView); state.DownloadsVerticalOffset = ScrollViewerHelpers.GetVerticalOffset(downloadsListView); string serializedState = SerializationHelper.SerializeToString(state); pageState[Constants.MainPageState] = serializedState; // OnNavigatedFrom would be called *before* SaveState (unless we call base. first), that's why we destroy the references here DataContext = null; ViewModel = null; }