2012-06-28 44 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

我不確定我是否明白「我的聲譽不足以提高分數」的意思。您可以點擊分數旁邊的向上或向下按鈕對答案進行投票,並且您可以接受標記分數下方刻度線標記的答案。 –

相關問題