0

2 つの既存の Visual Studio コンテキスト メニューに移動するいくつかのサブメニューを定義する Visual Studio 2012 拡張機能を作成しています。サブメニュー項目は、次の 1 つの点を除いて正しく機能しているように見えます。

パッケージ内の最初のメニュー項目がクリックされるまで、各メニュー項目の状態は、VSCT ファイルでの定義に応じて既定の状態になります。これは、常に有効になっているメニュー項目では問題なく機能しますが、一部のメニュー項目は、特定の変化する条件に基づいて有効または無効にする必要があります。パッケージが配置された後、状態は正しく設定されますが、最初のアイテムがクリックされる前に状態を正しく設定するにはどうすればよいですか?

私のソリューションで機能するデフォルトの状態はありません。メニューが最初に表示されたとき、条件は true または false である可能性があります。

これに対する解決策がある場合、またはどこかのチュートリアルでこれが対処されている場所を知っている場合は、助けていただければ幸いです。

4

1 に答える 1

0

MSDN のHow to: Autoload a VSPackageという記事で、私の質問に対する答えを最終的に発見しました。"トリック" は、プロジェクト用に作成されたパッケージ クラスに ProvideAutoLoadAttribute を設定することです。私が取り組んでいるプロジェクトの1つの宣言は次のとおりです。

[InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)]
[ProvideMenuResource("Menus.ctmenu", 1)]
[ProvideAutoLoad("{f1536ef8-92ec-443c-9ed7-fdadf150da82}")]
[Guid(GuidList.guidXamlHelpmeetPkgString)]
public sealed class XamlHelpmeetPackage : Package
{ ...

3 行目は、それ以外の場合は機能する拡張機能をオンデマンドではなく早期にロードするために追加したものです。

于 2013-02-04T19:30:48.980 に答える