3
我想用一个自定义功能按钮来扩展团队资源管理器工作项目编辑器,并将其导出到excel,outlook等,从当前工作项目获取信息。在Visual Studio 2010中扩展TFS工作项目编辑器
我知道有一种方法可以修改项目本身,如witcustomcontrols.codeplex.com所述,但我宁愿不修改它们。
编辑器是这样扩展的,还是有更好的方法来做到这一点?
最好的问候, 汤米
我想用一个自定义功能按钮来扩展团队资源管理器工作项目编辑器,并将其导出到excel,outlook等,从当前工作项目获取信息。在Visual Studio 2010中扩展TFS工作项目编辑器
我知道有一种方法可以修改项目本身,如witcustomcontrols.codeplex.com所述,但我宁愿不修改它们。
编辑器是这样扩展的,还是有更好的方法来做到这一点?
最好的问候, 汤米
创建工作项自定义控件是完成你想要做什么的方式。
您已经找到的项目(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
}
}
如果您还有其他问题,让我知道。
谢谢,这似乎是一个很好的方法。找到了扩展查询结果窗口的方法(基于[this](http://blogs.msdn.com/b/team_foundation/archive/2010/06/24/extending-work-item-tracking-context-menus)。 aspx)和[this](http://social.msdn.microsoft.com/Forums/en/vsx/thread/f87af77f-d431-4246-9631-de92c6533bfb)),但您的方法更加流畅。 – lobotommy
现在就实施它,像魅力一样工作。 不幸的是,我的声誉不足以提高分数,但非常感谢您的帮助。 – lobotommy
我不确定我是否明白“我的声誉不足以提高分数”的意思。您可以点击分数旁边的向上或向下按钮对答案进行投票,并且您可以接受标记分数下方刻度线标记的答案。 –