[英]Is there a way to hide a project in Solution Explorer programatically?
我正在开发 Visual Studio 2010 的扩展,我试图找出如何在解决方案资源管理器( UIHierarchy
)中隐藏项目,而不将其从基础解决方案中删除。 我一直在寻找,并找到了一些线索,但我只是不知道将它们放在一起。
据我所知,除非项目可见(即,树已扩展到它),否则 Visual Studio 甚至不会创建UIHierarchy
实例,所以我想如果我想要一个项目消失,我应该能够简单地从树中删除实例。
我的第一个问题是,我的假设是否正确?
假设答案是肯定的,那么我有以下代码(针对这篇文章进行了简化):
private void HideProject(IVsHierarchy project)
{
((IVsUIHierarchyWindow2)_uiHierarchyWindow).RemoveUIHierarchy(GetUIHierarchyFromHierarchy(project));
}
private IVsUIHierarchy GetUIHierarchyFromHierarchy(IVsHierarchy project)
{
UIHierarchy solutionExplorer = ((DTE2)_dte).ToolWindows.SolutionExplorer;
foreach (UIHierarchyItem hierarchy in solutionExplorer.UIHierarchyItems.Item(1).UIHierarchyItems)
{
// What do I do here?
}
return null;
}
显然,这还没有做任何事情,因为我完全卡住了。 我怀疑代码将不得不变得递归(以处理文件夹中包含的项目等),但现在,我只关心所有项目都直接包含在解决方案下方的简单情况。
有没有人知道比微软的(恕我直言有缺陷的)文档更好的参考资料? 有没有人试过这样做? 我该怎么做呢?
谢谢!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.