Compartir a través de


Ejemplo Remember A Single Set of State Across Page Instances

Actualización: noviembre 2007

Este ejemplo muestra cómo recordar varios elementos del estado de la página a través de instancias de página mediante IProvideCustomContentState y CustomContentState.

En este ejemplo, se muestra una característica específica de Windows Presentation Foundation y, por consiguiente, no se siguen los procedimientos recomendados para el desarrollo de aplicaciones. Para obtener la información completa sobre los procedimientos recomendados para el desarrollo de aplicaciones de Windows Presentation Foundation (WPF) y Microsoft .NET Framework, vea la siguiente información según convenga:

Accesibilidad: Procedimientos de accesibilidad recomendados

Localización: Información general sobre la localización y globalización de WPF

Rendimiento: Optimizar WPF: Rendimiento de aplicaciones

Seguridad: Seguridad de Windows Presentation Foundation

Download sample

Generar el ejemplo

  • Instale el Kit de desarrollo de software de Windows (SDK) y abra la ventana de comandos del entorno de compilación. En el menú Inicio, elija Todos los programas, Microsoft Windows SDK y haga clic en Shell CMD.

  • Descargue el ejemplo, que encontrará en la documentación del kit de desarrollo de software (SDK), al disco duro.

  • Para generar el ejemplo en la ventana de comados del entorno de compilación, vaya al directorio de origen del ejemplo. En el símbolo del sistema, escriba MSBUILD.

  • Para generar el ejemplo en Microsoft Visual Studio, cargue la solución de ejemplo o el archivo del proyecto y presione CTRL+MAYÚS+B.

Ejecutar el ejemplo

  • Para ejecutar el ejemplo compilado en la ventana de comandos del entorno de compilación, ejecute el archivo .exe en la carpeta Bin\Debug o Bin\Release, que se encuentra bajo la carpeta de código fuente de ejemplo.

  • Para ejecutar el ejemplo compilado con depuración en Visual Studio, presione F5.

Comentarios

De forma predeterminada, Windows Presentation Foundation (WPF) no almacena instancias de página en el historial de navegación. En su lugar, se crea una nueva instancia de página cada vez que se navega a ella. Posteriormente, no se recuerda la información de estado de la primera instancia de la página cuando se vuelve a navegar a ella. Es posible que WPF retenga instancias de página e, implícitamente, el estado de la página en el historial de navegación, aunque puede ser costoso desde una perspectiva de consumo de memoria.

Sin embargo, WPF proporciona una infraestructura que permite tanto almacenar información de estado con una entrada de página en el historial de navegación como volver a aplicarla a la nueva instancia de página cuando se navegue a ella usando el historial de navegación.

Este ejemplo muestra cómo puede implementar una página IProvideCustomContentState para permitir recordar un solo conjunto de estado, que puede contener uno o más elementos. Cuando se navega fuera de una página, WPF llama a GetContentState para pedir la información de estado que desea recordar. GetContentState devuelve una subclase de CustomContentState, que el usuario crea para almacenar y volver a consultar el estado.

Esta técnica es muy útil cuando se deben almacenar varios elementos de estado de página de instancias de página. Para recordar un solo elemento de estado de instancias de página, debe considerar el uso de una propiedad de dependencia que se pueda guardar en el diario (vea Ejemplo Remember a Single Item of State Across Page Instances). Para recordar varios conjuntos de estado de una instancia de página única, vea Ejemplo Remember Multiple Sets of State Per Page Instance.

Aa972166.alert_caution(es-es,VS.90).gifNota importante:

Al almacenar información de estado de contenido personalizado, no puede almacenar ninguna referencia a la instancia de la página de la que recuerda el estado. De esta forma, se evita que WPF libere la instancia de la página e invalide la finalidad del comportamiento del historial de navegación predeterminado. En este caso, quizá deba considerar la posibilidad de usar KeepAlive en su lugar.

Vea también

Tareas

Ejemplo Remember A Single Set of State Across Page Instances

Ejemplo Remember Multiple Sets of State Per Page Instance