How to: Work Item Tracking Custom Controls

需要实现IWorkItemControl接口,首先创建一个自定义控件的基类WitCustomControlBase,定义_workItem_workItemFieldName字段,定义FlushToDatasource方法。

 

代码段如下:

publicclass WitCustomControlBase : UserControl, IWorkItemControl{

 protected WorkItem_workItem = null;

 protected string_workItemFieldName = null;

 

 

 public virtual voidFlushToDatasource(){

  }

}

 

新建类DemoControl继承自WitCustomControlBase,代码段如下:

publicpartial class DemoControl : WitCustomControlBase {

       private TextBox txtDemo = newTextBox();

 

       public DemoControl() {

           InitializeComponent();

 

           txtDemo.Width = 100;

           txtDemo.Height = 25;

           txtDemo.Text = "InitText";

           this.Controls.Add(txtDemo);

       }

 

       private void UpdateData() {

           this._workItem.Fields[_workItemFieldName].Value = txtDemo.Text;

       }

 

       public override voidFlushToDatasource() {

           UpdateData();

       }

   }

 

新建DemoControl.wicc文件,内容如下:

<?xmlversion="1.0"?>

<CustomControlxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema">

 <Assembly>CodePlex.WitCustomControls.dll</Assembly>

 <FullClassName>CodePlex.WitCustomControls.Demo.DemoControl</FullClassName>

</CustomControl>

 

创建安装项目,安装以上内容所在的项目

Machine generated alternative text: WCustomControlSebpE]  Detected Dependen鰁sContent Files from WitCustomControls (Active)Primary output from WitCustomControls (Active)

安装之后在安装目录下可以找到以下内容

Machine generated alternative text: AssodatedAutomat韔nControl . wicck CaptureAttachmentsControl .wicc? Codeplex.WitCustomControls.dIIDemoControl.wiccMuibValueControl .wiccReproStepsControl .wiccScreenshotConfrol . wiccteststepsControl .wiccWeb遰owserConfrol . wicc

 

接下来修改TFS团队项目模板

通过Visual Studio中的Team Explorer下载Agile 5.0模板,打开WorkItemTracking下的TypeDefinitions,复制一份task.xml文件,重命名为Customtask.xml。打开Customtask.xml,将WORKITEMTYPE修改为CustomTask,添加

Machine generated alternative text: <WORKITEMTYPE name=擟ustomTask?

 

<FIELDname="DemoTitle" refname="Microsoft.VSTS.Common.DemoTitle"type="String" />

<ControlType="DemoControl"FieldName="Microsoft.VSTS.Common.DemoTitle"Label="DemoTitle:" LabelPosition="Left" />

 

Machine generated alternative text: <FIELD name=擠emoTitle? refname=擬icrosoft .VSTS . Common .DemoTitle? type=擲tring? I>

 

Machine generated alternative text: <Column PercentWidth=?0?<Group Label=擟lassification?<Column PercentWidth=? loo?<Control FieldName=擲ystem.AreaPath? Type=揥orkltemClassificationControl? Label=? &amp;Area:?LabelPosition=擫eft? I><Control FieldName=擲ystem. IterationPath? Type=揥orkltemClassificationControl? Label=擨te&amp;ration:?LabelPosition=擫eft? I><Control Type=擠emoControl? FielclName=揗icrosoft .VSTS . Common .DeinoTitle? Label=擠einoTitle:?LabelPosition=擫eft? I></Column></Group></Column>

 

打开WorkItem Tracking下面的workitems.xml,添加一个WORKITEMTYPES

Machine generated alternative text: <taskXml><WORKITEMTYPES><WORKITEMTYPE fileName=擶orkltem Tracking\Typeoefinitions\Bug. xml? I><WORKITEMTYPE fileName=擶orkltem Tracking\TypeDefinitions\SharedStep. xml? I><WORKITEMTYPE f ileName=擶orkltem Tracking\TypeDefinitions\Task. xml? ,><WQRKITEMTYPE f ileName=擶orkltem Tracking\TypeDefinitions\TestCase . xml? I><WORKITEMTYPE f ileName=擶orkltem Tracking\TypeDefinitions\UserStory . xml? ,><WORKITEMTYPE f ileName=擶orkltem Tracking\TypeDefinitions\Issue . xml? I><WQRKITEMTYPE fileName=擶orkltem Tracking\TypeDefinitionsCustomtask. xml? !></WORKITEMTYPES>

上载修改过后的Agile 5.0模板,根据该模板新建TeamProject,添加CustomTask类型的WorkItem

 

Machine generated alternative text: I My Favorites________ a El  DemoControl棏 (J Work Item Templates! rn ____portsAidsam Membersurce ControleWebWI:tDemoPointProjectsork Item Templatesork ItemsJ DocumentsJ ReportsIt;::: BuildsAcbvit? IECustomTaskIssueShared Steps1 New CustomTask...New Work Item? GotoWorkitem...New QueryTeam Project Process GuidanceTaskTest Case RefreshUser StoryIElElrn

 

Machine generated alternative text: ]Jtle: IDemoTUeE-St5 ________Assigned To: IAdminisfrathrState: lActiveseason: INPlanningSta Rank: rPrior靦y: 12- Effort (Hours)Original estimate:I Remaining:Compieted:ClassificationArea:Iteration: IDemoconfrolActiviti: IIoemoconfrol zIz]I MyCustomTideDemoTitle:z]

 

保存该WorkItem,查看DemoTitle在数据库中的存储

打开表dbo.WorkItemsLatest,找到刚才添加到DemoTitle

Machine generated alternative text: 9999-01-0100:00:00.000 539999-01-0100:00:00.000 539999-01-0100:00:00.000 529999-01-01 00:00:00.000 67J 9999-01-01 00:00:00.000 5543ActiveNULL133343bbbbbbbbbbbbbbbbbBugNULL43ActiveNULL133443mytaskTaskNULL55Active13133555sganBugNULL55Active214133655DemoBugBugNULL64 Active 13 13 37 64 DemoTitle CustomTask MyCuomTitIe

 

 

Links

 

Work Item Tracking Custom Controls

 

Pastedfrom <http://blogs.msdn.com/b/greggboer/archive/2010/03/30/work-item-tracking-custom-controls.aspx>

 

Createcustom work item control for TFS Web Access 2010 (TWA)

 

Pastedfrom <http://www.ewaldhofman.nl/post/2010/08/10/Create-custom-work-item-control-for-TFS-Web-Access-2010-(TWA).aspx>

 

Custom Controls for TFS Work Item Tracking

 

Pastedfrom <http://witcustomcontrols.codeplex.com/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值