Создание рабочего элемента пользовательского управления является способ сделать то, что вы пытаетесь сделать.
Проект, который вы уже нашли (witcustomcontrols.codeplex.com), является хорошей отправной точкой для понимания механики создания настраиваемых элементов управления рабочим элементом, поэтому я ограничусь описанием особенностей реализации основ пользовательской кнопки.
Создайте элемент управления, который происходит из System.Windows.Button и получите доступ к свойству WorkItemDatasource из метода OnClick.
Это поможет вам начать:
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
Я не уверен, что понимаю, что вы подразумеваете под «моя репутация недостаточно хороша для оценки». Вы можете проголосовать за ответ, нажав на кнопки вверх или вниз рядом со счетом, и вы можете принять ответ, обозначающий знак тика под счетом. –