【问题标题】:Extending the TFS Work Item editor in Visual Studio 2010在 Visual Studio 2010 中扩展 TFS 工作项编辑器
【发布时间】:2012-06-30 08:15:41
【问题描述】:

我想扩展团队资源管理器工作项编辑器,在导出到 excel、outlook 等时使用自定义功能按钮,从当前工作项中获取信息。

我知道有一种方法可以修改项目本身,如witcustomcontrols.codeplex.com 所述,但我宁愿不修改它们。

编辑器是否可以通过这种方式进行扩展,或者有更好的方法吗?

最好的问候, 汤米

【问题讨论】:

    标签: visual-studio-2010 tfs tfs-sdk tfs-workitem


    【解决方案1】:

    创建工作项自定义控件是完成您想要做的事情的方法。

    您已经找到的项目 (witcustomcontrols.codeplex.com) 是了解创建工作项自定义控件的机制的一个很好的起点,因此我将限制自己描述实现自定义按钮基础知识的细节。

    创建一个派生自 System.Windows.Button 的控件并通过 OnClick 方法访问 WorkItemDatasource 属性。

    这应该让你开始:

    using System;
    using System.Collections.Specialized;
    using System.Windows.Forms;
    using Microsoft.TeamFoundation.WorkItemTracking.Client;
    using Microsoft.TeamFoundation.WorkItemTracking.Controls;
    
    namespace Wicc {
        public class ButtonControl: Button, IWorkItemControl {
            public ButtonControl() {
    
            }
            protected override void OnClick(EventArgs e) {
                WorkItem workItem = this.WorkItemDatasource as WorkItem;
    
                // the rest of your code
            }
    
            #region IWorkItemControl Members
    
            public event EventHandler AfterUpdateDatasource;
    
            public event EventHandler BeforeUpdateDatasource;
    
            public void Clear() {
            }
    
            public void FlushToDatasource() {
            }
    
            public void InvalidateDatasource() {
            }
    
            public StringDictionary Properties {get; set;}
    
            public bool ReadOnly {get; set;}
    
            public void SetSite(IServiceProvider serviceProvider) {
            }
    
            public object WorkItemDatasource { get; set; }
    
            public string WorkItemFieldName { get; set; }
    
            #endregion
        }
    }
    

    如果您还有其他问题,请告诉我。

    【讨论】:

    • 谢谢,这似乎是个好方法。已找到扩展查询结果窗口的方法(基于thisthis),但您的方法更顺畅。
    • 现在实现了,就像一个魅力。不幸的是,我的声誉不够好,无法提高分数,但非常感谢您的帮助。
    • 我不确定我是否理解您所说的“我的声誉不足以提高分数”的意思。您可以点击分数旁边的向上或向下按钮对答案进行投票,并且您可以接受标记分数下方的勾号的答案。
    • @alfred,代表低于 40 (IIRC) 的人不能投票赞成/反对,但他们可以标记为答案。您可以为他的问题投票,以获得 5 个额外的代表点。我给你们两个投了赞成票! ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-11
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    相关资源
    最近更新 更多