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