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 属性とクラスを前に付ける必要があります:
[Export(typeof(ICommandExtension))]
また、表示されるコマンドが必要な各図の種類の属性を指定する必要があります:
[ClassDesignerExtension]
パブリック クラスとコマンドを定義する:
public class NameSwapper : ICommandExtension {
クラス内で、選択した図形アクセスを現在の図にインポートすると、使用できるように IDiagramContextを、要素とモデル ストアをシミュレートします:
[Import] public IDiagramContext Context { get; set; }
ソリューション エクスプローラーのような Visual Studio コンポーネントへのアクセスを取得するに IServiceProviderをインポートする:
[Import] public IServicerProvider ServiceProvider { get; set; }
コマンドがモデルにいくつかの変更を行うと、1 が失敗すると、ユーザーが、元に戻すコマンドを使用して、グループ全体を元に戻すことができるように、グループ全体を破棄できるように単一のトランザクションにグループ化することがあります。 ILinkedUndoContext は トランザクションを作成できるようにする:
[Import] public ILinkedUndoContext LinkedUndoContext {get; set;}
詳細については、「方法: モデリング図にメニュー コマンドを定義する」を参照してください。