【问题标题】:DataRow.ItemArray cannot be modified [duplicate]无法修改 DataRow.ItemArray [重复]
【发布时间】:2012-05-21 13:17:02
【问题描述】:

可能重复:
Unable to change DataRow value

我将数据表绑定到数据网格。现在我想在单击按钮后更改与所选单元格的行相对应的数据表的值。这是我的代码:

    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 本身。

标签: c# wpf datagrid


【解决方案1】:

您不能通过 item 数组进行更改,请使用以下语法:

drv.Row[11] = Brushes.Blue;

【讨论】:

    猜你喜欢
    • 2014-03-24
    • 2011-08-03
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    • 2018-06-24
    相关资源
    最近更新 更多