2012-06-28 1 views
3

Я хотел бы расширить редактор рабочих элементов проводника команды с помощью настраиваемой функциональной кнопки вдоль стороннего экспорта в excel, outlook и т. Д., Беря информацию из текущего рабочего элемента.Расширение редактора рабочих элементов TFS в Visual Studio 2010

Я знаю, что есть способ изменить сами элементы, как описано в witcustomcontrols.codeplex.com, но я не хочу их изменять.

Является ли редактор расширяемым таким образом, или есть ли лучшие способы сделать это?

С наилучшими пожеланиями, Tommy

ответ

4

Создание рабочего элемента пользовательского управления является способ сделать то, что вы пытаетесь сделать.

Проект, который вы уже нашли (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 
    } 
} 

В случае, если у вас есть дополнительные вопросы, дайте мне знать.

+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

Я не уверен, что понимаю, что вы подразумеваете под «моя репутация недостаточно хороша для оценки». Вы можете проголосовать за ответ, нажав на кнопки вверх или вниз рядом со счетом, и вы можете принять ответ, обозначающий знак тика под счетом. –