Compartilhar via


Lembre-se de um conjunto único de estado entre instâncias de página

Este exemplo ilustra como lembrar vários itens do estado da página em página instâncias usando IProvideCustomContentState e CustomContentState.

Este exemplo demonstra um recurso específico da Windows Presentation Foundation e, consequentemente, não segue boas práticas de desenvolvimento de aplicativos. Para ver uma cobertura abrangente de boas práticas de desenvolvimento de aplicativos Windows Presentation Foundation (WPF) e Microsoft .NET Framework, consulte os seguintes itens conforme adequado:

Acessibilidade - Práticas recomendadas de Acessibilidade

Localização - Visão geral de globalização e localização do WPF

Desempenho-Optimizing WPF Application Performance

Segurança - Windows Presentation Foundation Security

Download sample

O exemplo de criação

  • Instale o Windows Software Development Kit (SDK) e abra sua janela de comando de ambiente de compilação. No menu Iniciar, aponte para Todos os Programas, Microsoft Windows SDK e clique em Shell CMD.

  • Baixe o exemplo, geralmente da documentação do software development kit (SDK), para a unidade de disco rígido.

  • Para compilar o exemplo na janela de comando do ambiente de compilação, vá para o diretório fonte do exemplo. Na prompt de comando, digite MSBUILD.

  • Para compilar o exemplo em Microsoft Visual Studio, carregue a solução de exemplo ou o arquivo de projeto e, em seguida, pressione CTRL+SHIFT+B.

Executando o exemplo

  • Para executar o exemplo compilado na janela de comandos do ambiente de compilação, execute o arquivo .exe na pasta Bin\Debug ou Bin\Release contida na pasta de código-fonte do exemplo.

  • Para executar o exemplo compilado com a depuração no Visual Studio, pressione F5.

Comentários

Por padrão, Windows Presentation Foundation (WPF) não armazena a página instâncias no histórico de navegação. Em vez disso, uma nova instância de uma página é criada sempre que ele é navegado. Subseqüentemente, nenhuma informação de estado sobre a primeira instância de página não é lembrada quando a página é navegada novamente. É possível que WPF para manter as instâncias de página e, implicitamente, estado de página no histórico de navegação, embora isso possa ser dispendioso de uma perspectiva de consumo de memória.

No entanto, WPF Fornece uma infra-estrutura que permite que você armazenar informações de estado com uma página de entrada no histórico de navegação e reaplicá-lo para a nova instância de página quando navegou usem o histórico de navegação.

Esse exemplo mostra como uma página pode implementar IProvideCustomContentState para permitir que ele lembre-se de um único conjunto de estado, que pode conter um ou mais itens. Quando uma página é navegada longe, WPF chamadas GetContentState para solicitar a página de estado em que ele quer ser lembrada. GetContentState Retorna uma subclasse de CustomContentState, que você criar para armazenar e estado de repetição.

Essa técnica é mais útil quando você precisa armazenar vários itens do estado da página em instâncias de página. Para lembrar-se de um único item do estado de instâncias de página, você deve considerar o uso de uma propriedade de dependência journalable (consulte Lembre-se de um único item do estado do sistema em instâncias de página). Lembrar vários conjuntos de estado para uma instância única página, consulte Lembre-se de que vários conjuntos do estado do sistema por instância de página.

Observação importanteObservação importante:

Quando você armazena informações no estado de conteúdo personalizado, você não pode armazenar todas as referências a instância da página para o qual são lembrar o estado. Isso evita que WPF de liberar a instância de página e derrotas a finalidade do comportamento de histórico de navegação padrão. Se fizer isso, você poderá considerar o uso de KeepAlive em vez disso.

Consulte também

Tarefas

Lembre-se de um conjunto único de estado entre instâncias de página

Lembre-se de que vários conjuntos do estado do sistema por instância de página