sábado, 22 de mayo de 2010

evento

Eventos de duración de objetos

Todos los objetos de código administrado de Microsoft .NET Framework pasan por un conjunto similar de fases de duración: creación, uso y destrucción.Además, muchos objetos tienen una fase de finalización de su duración que tiene lugar como parte de la fase de destrucción.Los objetos de WPF , y más concretamente los objetos visuales que WPF identifica como elementos, también tienen un conjunto de fases comunes de duración de objeto.Los modelos de programación y de aplicación de WPF exponen estas fases como una serie de eventos.Hay cuatro tipos principales de objetos en WPF con respecto a los eventos de duración; los elementos en general, los elementos de ventana, los hosts de navegación y los objetos de aplicación.Las ventanas y los hosts de navegación también pertenecen al grupo mayor de objetos visuales (elementos).En este tema se describen los eventos de duración comunes a todos los elementos y, a continuación, se presentan los más concretos que se aplican a las definiciones de aplicación, ventanas u hosts de navegación.
Eventos de duración comunes para elementos

Cualquier elemento de nivel de marco de trabajo de WPF (aquellos objetos que se derivan de FrameworkElement o FrameworkContentElement) tiene tres eventos de duración comunes: Initialized, Loaded y Unloaded.
Initialized

Initialized se provoca primero y corresponde aproximadamente a la inicialización del objeto mediante la llamada a su constructor.Dado que el evento se produce en respuesta a la inicialización, es seguro que se establecen todas las propiedades del objeto.(Una excepción de ello son los usos de expresiones del tipo de recursos dinámicos o enlaces; estas expresiones no se evaluarán.) Como consecuencia del requisito de que se establezcan todas las propiedades, la secuencia del elemento Initialized provocado por elementos anidados definidos en marcado parece suceder por orden desde los elementos más profundos del árbol de elementos hasta los elementos primarios cercanos a la raíz.Este orden se debe a que las relaciones entre elementos primarios y secundarios y de contención son propiedades, y por consiguiente el elemento primario no puede comunicar la inicialización hasta que se han inicializado completamente también los elementos secundarios que rellenan la propiedad.

Cuando escriba controladores en respuesta al evento Initialized, debe tener en cuenta que no existe ninguna garantía de que se hayan creado todos los demás elementos del árbol de elementos (árbol lógico o el árbol visual) en torno al punto donde se asocie el controlador, en particular los elementos primarios.Puede que haya variables de miembro que sean null, o que algunos orígenes de datos no se hayan rellenado aún por el enlace subyacente (incluso en el nivel de expresión).

No hay comentarios:

Publicar un comentario