Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El ModelItem contexto de edición es el objeto que usa la aplicación host para comunicarse con el diseñador. EditingContext expone dos métodos, Items y Services, que se pueden usar
La colección Items
La Items colección se usa para tener acceso a los datos que se comparten entre el host y el diseñador, o los datos que están disponibles para todos los diseñadores. Esta colección tiene las siguientes funcionalidades, a las que se accede a través de la ContextItemManager clase :
La colección Services
La Services colección se usa para tener acceso a los servicios que usa el diseñador para interactuar con el host o los servicios que usan todos los diseñadores. Esta colección tiene los siguientes métodos reseñables:
Asignar una actividad a un diseñador
Para especificar qué diseñador usa una actividad, se usa el atributo Designer.
[Designer(typeof(MyClassDesigner))]
public sealed class MyClass : CodeActivity
{
}
Creación de un servicio
Para crear un servicio que actúa como un conducto de información entre el diseñador y el host, se debe crear una interfaz y una implementación. El método usa la Publish interfaz para definir los miembros del servicio y la implementación contiene la lógica del servicio. En el ejemplo de código siguiente, se crean una interfaz de servicio y una implementación.
public interface IMyService
{
IEnumerable<string> GetValues(string DisplayName);
}
public class MyServiceImpl : IMyService
{
public IEnumerable<string> GetValues(string DisplayName)
{
return new string[] {
DisplayName + " One",
DisplayName + " Two",
"Three " + DisplayName
} ;
}
}
Publicación de un servicio
Para que un diseñador consuma un servicio, primero debe publicarlo el host mediante el Publish método .
this.Context.Services.Publish<IMyService>(new MyServiceImpl);
Suscribirse a un servicio
El diseñador obtiene acceso al servicio mediante el método Subscribe en el método OnModelItemChanged. En el fragmento de código siguiente se muestra cómo suscribirse a un servicio.
protected override void OnModelItemChanged(object newItem)
{
if (!subscribed)
{
this.Context.Services.Subscribe<IMyService>(
servInstance =>
{
listBox1.ItemsSource = servInstance.GetValues(this.ModelItem.Properties["DisplayName"].ComputedValue.ToString());
}
);
subscribed = true;
}
}
Compartir datos utilizando la colección Items
El uso de la colección Items es similar al uso de la colección Services, excepto que SetValue se usa en lugar de Publicar. Esta colección es más adecuada para compartir datos simples entre los diseñadores y el host, en lugar de una funcionalidad compleja.
Servicios y elementos host de EditingContext
.NET Framework proporciona una serie de elementos y servicios integrados a los que se accede a través del contexto de edición.
Artículos:
AssemblyContextControlItem: administra la lista de ensamblados locales a los que se hace referencia que se usará dentro del flujo de trabajo para los controles (como el editor de expresiones).
ReadOnlyState: indica si el diseñador está en un estado de solo lectura.
Selection: define la colección de objetos que están seleccionados actualmente.
WorkflowFileItem: proporciona información sobre el archivo en el que se basa la sesión de edición actual.
Servicios:
AttachedPropertiesService: permite agregar propiedades a la instancia actual mediante AddProperty.
DesignerView: permite el acceso a las propiedades del lienzo del diseñador.
IActivityToolboxService: permite actualizar el contenido del cuadro de herramientas.
ICommandService: se usa para integrar comandos del diseñador (como el menú contextual) con implementaciones de servicio proporcionadas personalizadamente.
IDesignerDebugView: proporciona funcionalidad para el depurador del diseñador.
IExpressionEditorService: proporciona acceso al cuadro de diálogo del "Editor de expresiones".
IIntegratedHelpService: proporciona al diseñador funcionalidad de ayuda integrada.
IValidationErrorService: proporciona acceso a errores de validación mediante ShowValidationErrors.
IWorkflowDesignerStorageService: proporciona un servicio interno para almacenar y recuperar datos. .NET Framework usa internamente este servicio y no está pensado para uso externo.
IXamlLoadErrorService: proporciona acceso a la colección de errores de carga XAML mediante ShowXamlLoadErrors.
ModelService: el diseñador usa para interactuar con el modelo del flujo de trabajo que se está editando.
ModelTreeManager: proporciona acceso a la raíz del árbol de elementos de modelo mediante Root.
UndoEngine: proporciona funcionalidad de deshacer y rehacer.
ViewService: asigna elementos visuales a elementos de modelo subyacentes.
ViewStateService: almacena los estados de vista de los elementos de modelo.
VirtualizedContainerService: se usa para personalizar el comportamiento de la interfaz de usuario del contenedor virtual.
WindowHelperService: se usa para registrar y anular el registro de delegados para las notificaciones de eventos. También permite establecer un propietario de ventana.