【发布时间】:2012-05-21 13:17:02
【问题描述】:
我将数据表绑定到数据网格。现在我想在单击按钮后更改与所选单元格的行相对应的数据表的值。这是我的代码:
private void BtnModifyColorBlue_Click(object sender, RoutedEventArgs e)
{
if (dataGrid.SelectedCells.Count < 1)
return;
DataGridCellInfo dc = dataGrid.SelectedCells.FirstOrDefault();
DataRowView drv = dc.Item as DataRowView;
if (drv == null)
return;
drv.Row.ItemArray[11] = Brushes.Blue;
}
由于某种原因,赋值后,数据表的值没有改变。这里有什么神秘的事情发生吗?顺便说一句,我可以确认分配已经执行。非常感谢。
【问题讨论】:
-
对不起。我确实知道 ItemArray 是问题所在。我认为问题可能来自 DataGridCellInfo。所以当我搜索时,我强调 DataGridCellInfo 部分,这就是为什么我没有找到那个问题。
-
有关它为什么这样做的更多上下文,您可以在此处阅读源代码:referencesource.microsoft.com/#System.Data/System/Data/… ItemArray 的访问器创建一个新数组,因此修改其值不会影响其中项目的值DataRow 本身。