2012-05-29 2 views
0

Я только что закончил надгробную надпись на странице в своем приложении, когда заметил, что я только надгробию страницу, которую я просматриваю сейчас, а это означает, что после того, как я вернусь, страницы в стопке теряют всех своих членов и не получают надгробных памятников .. Я только нахожу примеры о том, как очертить текущую страницу, но ничего о том, как запечатлеть страницы backstack ... Каков элегантный способ сделать это?Backstack Tombstone wp7

Просто, чтобы показать, как я tombstoning:

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    if (e.IsNavigationInitiator == false) 
    { 
     _tombstone = this.LoadState<Tombstone>("tombstone"); 
    } 
    else 
    { 
     _tombstone.NavigationParameters = NavigationParameters; 
    } 
} 


protected override void OnNavigatedFrom(NavigationEventArgs e) 
{ 
    if (_tombstone != null && e.IsNavigationInitiator == false) 
     this.SaveState("tombstone", _tombstone); 
} 

    public static void SaveState(this PhoneApplicationPage phoneApplicationPage, string key, object value) 
    { 
     if (phoneApplicationPage.State.ContainsKey(key)) 
     { 
      phoneApplicationPage.State.Remove(key); 
     } 

     phoneApplicationPage.State.Add(key, value); 
    } 

_tombstone содержит все жизненно важные члены моей текущей страницы, которые мне нужно повторно инициализировать страницу после tombstoneing

+0

Что вы хотите, чтобы сохранить состояние? это '_tombstone' и что делает' SaveState() 'do? –

ответ

0

Вы должны сохраняться данные для каждого когда вы покидаете его (если NavigationMode! = Назад), поскольку вы не будете знать, что приложение будет разбито на камне, если на другой странице, и вы не сможете получить доступ к другим страницам в стеке, когда происходит захоронение.

В качестве альтернативы вы можете хранить все по центру (с моделью супер-просмотра) и поддерживать постоянство состояния на уровне приложения.

+0

Это то, о чем я сейчас думаю, но разве этот ресурс не тяжелый? –

+0

Знаете ли вы хорошее примерное приложение, демонстрирующее это? –

+0

Вы можете посмотреть демонстрационное приложение в источнике http://tombstonehelper.codeplex.com/ #CoughCough –

 Смежные вопросы

  • Нет связанных вопросов^_^