Arquitectura de contexto de edición

Actualización: noviembre 2007

En este tema se explica la función del contexto de edición al desarrollar proveedores de características y conectores de características para Windows Presentation Foundation (WPF) Designer for Visual Studio. Para obtener más información sobre proveedores de características y conectores de características, vea Proveedores de características y conectores de características.

El contexto de edición: capturar el estado actual del diseñador

Un diseñador visual acumula una cantidad significativa de información de estado mientras se utiliza. Un estado puede representar cualquier tipo de información en tiempo de diseño, como los objetos de la selección actual o el comportamiento cuando se hace clic con el botón del mouse. El estado se debe almacenar en una ubicación central, para poder recuperarlo cuando se necesita. La clase EditingContext representa el repositorio de estados central del diseñador.

Servicios

Un servicio es una instancia única de una clase, que define un comportamiento bien descrito. Un servicio proporciona comportamiento e implementación en el diseñador. Una vez creado un servicio en un contexto, siempre está presente hasta que el contexto se elimina. Los servicios no desaparecen nunca del contexto. Los servicios tienen valores de instancia coherentes, de modo que siempre resulta seguro almacenarlos en caché. Para obtener un ejemplo de código que muestra cómo implementar un servicio, vea Cómo: Crear un conector de características personalizado.

Elementos de contexto

Un elemento de contexto es un objeto inmutable y contiene el estado. Algunos elementos de contexto también definen métodos, que pueden realizar operaciones en el estado que contienen.

Un elemento de contexto se puede agregar a y quitar de un contexto. Los elementos de contexto son transitorios, pero siempre tienen un valor. Incluso si un elemento de contexto determinado no está en el contexto, tiene un valor predeterminado y nunca devuelve null.

A diferencia de lo que ocurre en un servicio, el valor de un elemento de contexto puede cambiar en cualquier momento, por tanto, no debe almacenar en memoria caché un elemento de contexto nunca. Puede suscribirse a una devolución de llamada de cambio, que se provoca cuando cambia un tipo determinado de elemento de contexto.

Los elementos de contexto son inmutables, pero puede haber elementos de contexto nuevos que reemplacen a los existentes para simular la mutabilidad.

Suscripciones

Los servicios y los elementos de contexto tienen administradores. Los administradores de servicios y los administradores de elementos de contexto son fundamentalmente tablas que contienen datos. Por ejemplo, el administrador de servicios se usa para publicar nuevos servicios.

Los administradores de servicios y los administradores de elementos de contexto también proporcionan un mecanismo de suscripción, que notifica al código cuando determinados datos están presentes. Esta notificación se implementa como un delegado de devolución de llamada. Una suscripción es un delegado al que se llama cuando se ha agregado un servicio o tipo de elemento de contexto determinados.

Similitudes con el marco de trabajo del diseñador de ComponentModel

El contexto de edición es conceptualmente similar a las interfaces IDesignerHost y IServiceContainer del espacio de nombres System.ComponentModel.Design. Para obtener más información, vea Comparar el marco de trabajo del Diseñador de Windows Forms con el marco de trabajo de WPF Designer.

Vea también

Referencia

Microsoft.Windows.Design.Services

EditingContext

ContextItem

Otros recursos

Extensibilidad de WPF Designer