2012-06-28 133 views

回答

4

创建工作项自定义控件是完成你想要做什么的方式。

您已经找到的项目(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 
    } 
} 

如果您还有其他问题,让我知道。

+0

谢谢,这似乎是一个很好的方法。找到了扩展查询结果窗口的方法(基于[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

+0

现在就实施它,像魅力一样工作。 不幸的是,我的声誉不足以提高分数,但非常感谢您的帮助。 – lobotommy

+0

我不确定我是否明白“我的声誉不足以提高分数”的意思。您可以点击分数旁边的向上或向下按钮对答案进行投票,并且您可以接受标记分数下方刻度线标记的答案。 –

相关问题