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 | |
---|---|---|
Text | La etiqueta visible que identifica este comando en el menú. |
Arriba
Métodos
Nombre | Descripción | |
---|---|---|
Execute | Se invoca cuando el usuario hace clic en este comando en el menú. | |
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)