Я задавал этот вопрос в аналогичном посте, но с тех пор произошли существенные обновления, но все еще нет результатов, поэтому я попытаюсь повторно задать вопрос с обновленной информацией.
По сути, у меня есть сводный вид с 4 пунктами. Если я создаю сценарий, в котором я нажимаю клавишу Windows, а затем быстро нажимаю клавишу «Назад», мое приложение будет вновь открыто без восстановления (это ожидаемый результат). Функциональность приложения есть. Я могу нажимать кнопки панели приложения и т. Д.
Что не работает, так это то, что сводные элементы заморожены. Если я был в элементе Pivot A и быстро нажимаю кнопку «Пуск» и «Назад», я возвращаюсь к элементу Pivot A. Если я пытаюсь переключать элементы Pivot, экран не обновляется, он «завис» на элементе A Pivot, НО функциональность Опорный пункт B есть. (Я знаю это, потому что теперь отображаются значки панели приложения для сводного элемента B).
Я прочитал много статей о правильных сценариях захоронения и о том, как решить эту проблему. Мои данные правильно захоронены, и после повторной активации данные работают. Ни один объект не является нулевым, поэтому я не получаю никаких исключений.
Я проверяю, нужно ли перезагрузить Main ViewModel (в этом случае мне это не нужно, поэтому создаваемые изначально элементы пользовательского интерфейса не создаются).
Что устраняет проблему, если приложение реконструируется. Допустим, я захожу на рынок из своего приложения, позволяю ему завершить загрузку и нажать обратно. Мое приложение будет обновлено и будет работать нормально, поскольку оно должным образом деактивировано и восстановлено istelf. Я не полагаюсь на то, что конструкторы выполняют всю работу, поэтому я не пропускаю ни одного ключевого элемента, который не был установлен, когда они не запускаются в сценарии с окнами / кнопкой возврата.
Кто-нибудь знает, почему мой экран не обновляется?
конструктор / загруженное событие / при переходе к событию
public MainPage()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(MainPage_Loaded);
}
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
if (App.firstTimeLoading == true)
{
App.firstTimeLoading = false;
}
BuildApplicationBar();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
this.DataContext = App.ViewModel;
App.viewIdentifier = StringResource.MainPageView;
if (!App.ViewModel.IsDataLoaded)
{
App.ViewModel.LoadData();
String bookTitle;
App.Parser.appBookInfoDict.TryGetValue(CPlayerInventoryKeys.kInventoryKeyTitleShortTitle, out bookTitle);
PivotBackground.Title = bookTitle.ToUpper();
CreatePivotItems();
}
if (App.playerController.chapterPlayer.Source == null)
App.restoreStateClass.RestoreState();
//applies the proper background image
if (App.isDarkTheme)
{
BitmapImage bitmapImage = new BitmapImage(new Uri(StringResource.PanoramaBlackImage, UriKind.Relative));
BackgroundImage.ImageSource = bitmapImage;
BackgroundImage.Opacity = .85;
}
else
{
BitmapImage bitmapImage = new BitmapImage(new Uri(StringResource.PanoramaWhiteImage, UriKind.Relative));
BackgroundImage.ImageSource = bitmapImage;
BackgroundImage.Opacity = .5;
}
if (App.firstTimeLoading == false && PivotBackground.SelectedItem != SuggestedPivotItem)
BuildApplicationBar();
else if (PivotBackground.SelectedItem == SuggestedPivotItem)
{
BuildMarketPlaceApplicationBar();
}
base.OnNavigatedTo(e);
}