Compartir a través de


ICommandExtension (Interfaz)

Implemente y exporte esta interfaz de una extensión de MEF para proporcionar un comando de menú para modelar diagramas.

Espacio de nombres:  Microsoft.VisualStudio.Modeling.ExtensionEnablement
Ensamblado:  Microsoft.VisualStudio.Modeling.Sdk.12.0 (en Microsoft.VisualStudio.Modeling.Sdk.12.0.dll)

Sintaxis

'Declaración
Public Interface ICommandExtension
public interface ICommandExtension

El tipo ICommandExtension expone los siguientes miembros.

Propiedades

  Nombre Descripción
Propiedad pública Text La etiqueta visible que identifica este comando en el menú.

Arriba

Métodos

  Nombre Descripción
Método público Execute Se invoca cuando el usuario hace clic en este comando en el menú.
Método público QueryStatus Implemente esto para definir si el comando debería estar visible y habilitado.Establezca command.Visible y command.Enabled.No cambie el estado del modelo.

Arriba

Comentarios

Para definir un comando de menú para un diagrama UML, puede implementar esta interfaz en una extensión de Visual Studio . En el extension.manifest, deberá tener identificado como componente MEF. Debe prefijar la clase con el atributo export:

[Export(typeof(ICommandExtension))]

También debe proporcionar un atributo para cada tipo de diagrama en el que desea que el comando aparezca:

[ClassDesignerExtension]

Defina el comando como public class:

public class NameSwapper : ICommandExtension {

Dentro de la clase, debe importar IDiagramContext, que permite obtener acceso al diagrama actual, las formas seleccionadas, a los elementos del modelo, y el modelo almacenado:

[Import] public IDiagramContext Context { get; set; }

También puede importar IServiceProvider, para obtener acceso a los componentes de Visual Studio como el explorador de soluciones:

[Import] public IServicerProvider ServiceProvider { get; set; }

Si el comando realiza varios cambios en el modelo, es posible que desee que estén agrupados juntos en una única transacción, para poder abandonar a todo el grupo si se produce uno, de forma que pueda el usuario deshacer el grupo entera con un único comando deshacer. ILinkedUndoContext permite crear una transacción:

[Import] public ILinkedUndoContext LinkedUndoContext {get; set;}

Para obtener más información, vea Cómo: Definir un comando de menú en un diagrama de modelado.

Vea también

Referencia

Microsoft.VisualStudio.Modeling.ExtensionEnablement (Espacio de nombres)