【问题标题】:Get TFS Work Item/WorkItemID when command called from contextmenu of Resultlist从 Resultlist 的上下文菜单调用命令时获取 TFS 工作项/工作项 ID
【发布时间】:2015-03-13 17:38:58
【问题描述】:

在 Visual Studio 2013 的扩展中,我为 TFS WorkItem Contextmenu 放置了一个命令操作 (GUID:ID = {2DC8D6BB-916C-4B80-9C52-FD8FC371ACC2}:0x0206)

在工作项编辑器(直接打开的单个工作项)的背景中或在显示工作项的结果列表的下部窗格中右键单击时,可以使用我的命令的上下文菜单条目。

现在是我的问题: 当直接从工作项编辑器(单个打开的工作项)调用命令时,我只能通过检查 _dte.ActiveDocument.Name (.Fullname) 来获得工作项,而不是在查询结果列表正在播放时。

好的,当只打开工作项时:

vstfs:///WorkItemTracking/WorkItem/4711

但如果我从 ActiveDocument 中的查询结果调用命令,则 ActiveDocument 中没有工作项 id - 只有一个 tfs url guid 女巫看起来像这样:

vstfs:///WorkItemTracking/Results/76ec1234-0000-00000-1234-f82d48b00000

从结果列表调用命令时,如何获取 id 或 workitemobject?还可以在 TFS 查询的结果列表中选择多个工作项 - 如何获取 ID/工作项列表?

【问题讨论】:

    标签: visual-studio visual-studio-2013 tfs vsx tfs-workitem


    【解决方案1】:

    所以我通过逆向工程师找到了一个可行的解决方案:)

            WorkItemStore service = tfsTeamProjectCollection.GetService<WorkItemStore>();
            IWorkItemTrackingDocument activeDocument = this.GetActiveDocument();
            IWorkItemDocument workItemDocument = activeDocument as IWorkItemDocument;
            IResultsDocument resultsDocument = activeDocument as IResultsDocument;
    
            if (workItemDocument != null)
            {
                // Workitem
                Debug.WriteLine("A Workitem: {0}: {1}", workItemDocument.Item.Id, workItemDocument.Item.Title);
            }
    
            if (resultsDocument != null)
            {
                // Resultlist
                Debug.WriteLine("A Resultlist: IDs {0}", resultsDocument.SelectedItemIds);
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-01
      • 2018-09-08
      • 2018-11-16
      • 2014-10-15
      • 2014-07-10
      • 1970-01-01
      • 2015-02-19
      • 2012-01-29
      相关资源
      最近更新 更多