как получить выбранный объект узла подключения окна VS Server Explorer DDEX
m добавив некоторые параметры для узла подключения в обозревателе серверов для моего расширения VS. Для одного из пунктов меню, которые я добавил, мне нужно получить строку подключения для самого выбранного подключения, поэтому я попробовал это, добавив некоторый код в событие BeforeQueryStatus, а также в метод обработчика команд. Но похоже, что яЯ что-то упустил, так как каждый раз, когда я хочу получить экземпляр DataViewHierarchyAccessor, я всегда получаю нулевое значение. Хотя, если я делаю то же самое, но на нижнем уровне узел работает нормально. Я использовал следующий код без удачи:
IVsDataExplorerNodeSelection nodeSelection = (IVsDataExplorerNodeSelection) Package.GetGlobalService (typeof (IVsDataExplorerNodeSelection));
Иерархия IVsUIHierarchy = Marshal.GetTypedObjectForIUnknown (ierarchyPtr, typeof (IVsUIHierarchy)) как IVsUIHierarchy;
Кто-нибудь сделал что-то подобное для узла подключения окна обозревателя сервера?
Обновить:
Похоже, я получил некоторый прогресс в этом, я просто попробовал это:
EnvDTE80.DTE2 _applicationObject = GetDTE2();
UIHierarchy uih = _applicationObject.ToolWindows.GetToolWindow("Server Explorer") as UIHierarchy;
Array selectedItems = (Array)uih.SelectedItems;
if (null != selectedItems)
{
foreach (UIHierarchyItem selItem in selectedItems)
{
SelectedItem prjItem = selItem.Object as EnvDTE.SelectedItem;
string name = prjItem.Name;
}
}
Теперь мой вопрос: есть лилучший тип, чтобы привести список выбранных элементов? вместо EnvDTE.SelectedItem.
Заранее спасибо.