コンテキスト メニューにメニュー コマンドを追加した VS パッケージを作成しようとしているので、ソリューション エクスプローラーで項目を右クリックすると表示されます。コマンドをクリックすると、右クリックしてコマンドを呼び出したアイテムの詳細をポップアップで表示したいと思います。
選択したアイテムに関する情報を取得するにはどうすればよいでしょうか。アイテムの詳細を知るために利用できるサービスはありますか?
コンテキスト メニューにメニュー コマンドを追加した VS パッケージを作成しようとしているので、ソリューション エクスプローラーで項目を右クリックすると表示されます。コマンドをクリックすると、右クリックしてコマンドを呼び出したアイテムの詳細をポップアップで表示したいと思います。
選択したアイテムに関する情報を取得するにはどうすればよいでしょうか。アイテムの詳細を知るために利用できるサービスはありますか?
private static EnvDTE80.DTE2 GetDTE2()
{
return GetGlobalService(typeof(DTE)) as EnvDTE80.DTE2;
}
private string GetSourceFilePath()
{
EnvDTE80.DTE2 _applicationObject = GetDTE2();
UIHierarchy uih = _applicationObject.ToolWindows.SolutionExplorer;
Array selectedItems = (Array)uih.SelectedItems;
if (null != selectedItems)
{
foreach (UIHierarchyItem selItem in selectedItems)
{
ProjectItem prjItem = selItem.Object as ProjectItem;
string filePath = prjItem.Properties.Item("FullPath").Value.ToString();
//System.Windows.Forms.MessageBox.Show(selItem.Name + filePath);
return filePath;
}
}
return string.Empty;
}
上記の関数は、選択されたアイテム(ファイル)のフルパスを返します。基本的に、DTE2 インスタンスから soultion エクスプローラーを取得すると、そこからソリューション エクスプローラーに関するすべての情報が取得されます。