0

我正在编写一个 Visual Studio 2012 扩展,它定义了几个子菜单以进入两个现有的 Visual Studio 上下文菜单。子菜单项似乎可以正常工作,除了一件事:

在单击我的包中的第一个菜单项之前,每个菜单项的状态都是其默认状态,具体取决于其在 VSCT 文件中的定义。这适用于始终启用的菜单项,但应根据某些变化条件启用或禁用某些菜单项。安装包后,它们的状态设置正确,但是如何在单击第一项之前正确设置状态?

我的解决方案中没有默认状态。我的菜单第一次出现时,条件可能是真或假。

如果您对此有解决方案,或者知道某处的教程中已解决此问题,我将不胜感激。

4

1 回答 1

0

我终于在 MSDN 上一篇名为How to: Autoload a VSPackage的文章中找到了我的问题的答案。“技巧”是在为项目创建的包类上设置 ProvideAutoLoadAttribute。这是我正在从事的一个项目的声明:

[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
{ ...

第三行是我添加的所有内容,以使原本可以工作的扩展负载尽早而不是按需加载。

于 2013-02-04T19:30:48.980 回答