【发布时间】:2015-10-26 22:13:41
【问题描述】:
所以情况是这样的:我正在尝试创建一个任务工作项。我必须从dataGridView 获取数据,我想我设法做到了。但是当我尝试保存或验证 WorkItem 时,有趣的部分就来了。无论State 有什么值,验证器在执行wiTask.Validate(); 时总是带有InvalidListValue。我什至尝试对 State 的值进行硬编码,但没有任何反应。有一件事让我有点困扰 - 在 Validation 数组中,错误出现在 Status 属性中,其中实际控件只有 State 可用。这是一些代码和错误位的sn-p:
WorkItem wiTask = new WorkItem(workItemType)
{
Title = form1.dg_taskView.Rows[rows].Cells["titleDataGridViewTextBoxColumn"].Value.ToString() + " " + form1.tb_details.Text,
Description = form1.dg_taskView.Rows[rows].Cells["descriptionDataGridViewTextBoxColumn"].Value.ToString(),
AreaId = int.Parse(form1.dg_taskView.Rows[rows].Cells["areaIDDataGridViewTextBoxColumn"].Value.ToString()),
AreaPath = form1.dg_taskView.Rows[rows].Cells["areaPathDataGridViewTextBoxColumn"].Value.ToString(),
IterationId = int.Parse(form1.dg_taskView.Rows[rows].Cells["iterationIDDataGridViewTextBoxColumn"].Value.ToString()),
IterationPath = form1.dg_taskView.Rows[rows].Cells["iterationPathDataGridViewTextBoxColumn"].Value.ToString(),
State = form1.dg_taskView.Rows[rows].Cells["stateDataGridViewTextBoxColumn"].Value.ToString()
};
ArrayList result = wiTask.Validate();
wiTask.Save();
var hierarchicalLink = _workItemStore.WorkItemLinkTypes["System.LinkTypes.Hierarchy"];
userStory.WorkItemLinks.Add(new WorkItemLink(hierarchicalLink.ForwardEnd, wiTask.Id));
userStory.Save();
【问题讨论】:
-
默认情况下,所有任务都将在新建状态下创建,您不能指定其他任何内容。将其留空,TFS 会处理它,将状态设置为 New。您是否更改了该工作项定义的状态流?
-
我刚刚注释掉了
State行——结果是一样的。状态流是什么意思? -
我的意思是任务项的状态和状态转换。默认值与“新建”无关,因此无法从另一个状态开始,然后您可以移至“进行中”等。“状态”是您添加的自定义字段吗?它是否从全局列表中提取值?
-
Status是默认字段,绝对不是我创建的(只是在整个项目中运行了字典搜索)。我对这个 WorkItem 所做的一切都是上面的代码 + 在可编辑的DataGrid视图中输入值。 -
调用 Validate 后“结果”ArrayList 中的内容是什么?
标签: c# visual-studio validation tfs tfs-workitem