ICommandExtension 介面
從 MEF 擴充功能實作並匯出這個介面,以提供模型圖表的功能表命令。
命名空間: Microsoft.VisualStudio.Modeling.ExtensionEnablement
組件: Microsoft.VisualStudio.Modeling.Sdk.12.0 (在 Microsoft.VisualStudio.Modeling.Sdk.12.0.dll 中)
語法
'宣告
Public Interface ICommandExtension
public interface ICommandExtension
ICommandExtension 類型會公開下列成員。
屬性
名稱 | 描述 | |
---|---|---|
Text | 可見標籤,用來在功能表中識別此命令。 |
回頁首
方法
名稱 | 描述 | |
---|---|---|
Execute | 當使用者按一下功能表中的這個命令時叫用。 | |
QueryStatus | 實作此選項以定義您的命令是否應該可見且處於啟用狀態。設定 command.Visible 和 command.Enabled。不要變更模型的狀態。 |
回頁首
備註
若要定義 UML 圖表的功能表命令,您可以實作在 Visual Studio 擴充的介面。 在這個 extension.manifest,組件必須被識別為 MEF 元件。 您必須重新命名您的類別之前加上匯出屬性:
[Export(typeof(ICommandExtension))]
您應該針對您想要命令出現的每個圖表類型也提供屬性:
[ClassDesignerExtension]
定義命令做為公用類別:
public class NameSwapper : ICommandExtension {
在您的類別中,您應匯入 IDiagramContext,可用來存取這個目前的圖形、選取的圖案,模型項目和模型存放區:
[Import] public IDiagramContext Context { get; set; }
您也可以匯入 IServiceProvider,以取得 Visual Studio 元件存取例如方案總管]:
[Import] public IServicerProvider ServiceProvider { get; set; }
如果您的命令將對模型進行數項變更,您可能想要一起分組成單一交易,因此,您可以拋中止整個群組,則會失敗,,和,讓使用者可以取消有單一復原命令的整個群組。 ILinkedUndoContext 可讓您建立交易:
[Import] public ILinkedUndoContext LinkedUndoContext {get; set;}
如需詳細資訊,請參閱如何:在模型圖表上定義功能表命令。