共用方式為


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;}

如需詳細資訊,請參閱如何:在模型圖表上定義功能表命令

請參閱

參考

Microsoft.VisualStudio.Modeling.ExtensionEnablement 命名空間