0

我如何(/是否可能)向我的 DataView 添加自定义列,并在此列中显示特定计算的结果。

也就是说,我目前有一个 dataGridView,它基于我数据库中的 DataTable 绑定到一个 DataView。我想在 dataGridView 中添加一个附加列以显示一个数字,该数字是通过查看当前行加上它的子行计算得出的。换句话说,列的信息不仅仅是从行数据本身推导出来的。

具体问题可能是:a)在哪里添加列本身?到我假设的 DataView?b)从哪个方法/事件触发重新计算此自定义列的值(/我如何控制它)

谢谢

PS。我还注意到,如果我使用以下代码/方法,我会得到一个无限循环......

    // Custom Items
    DataColumn dc = new DataColumn("OverallSize", typeof(long));
    DT_Webfiles.Columns.Add(dc);
    DT_Webfiles.RowChanged += new DataRowChangeEventHandler(DT_Row_Changed);

private static void DT_Row_Changed(object sender, DataRowChangeEventArgs e)
{
    e.Row["OverallSize"] = e.Row["OverallSize"] ?? 0;
    e.Row["OverallSize"] = (long)e.Row["OverallSize"] + 1;
}

还有什么其他方法可以避免这种循环。即目前我说的是在行更改时更新自定义列的值,但是在更改行之后它会触发另一个“行已更改”事件...

4

1 回答 1

0

我认为这个链接可能是一个很好的答案?虽然我还不确定表达式 DataColumn.Expression 属性是否能够处理它......(即根据 ITEM_TABLE< ==>RELATIONSHIP_TABLE 结构。Relationship_table 有一个 ID,ITEM_PARENT_ID,ITEM_CHILD_ID。

http://ondotnet.com/pub/a/dotnet/2003/05/26/datacolumn_expressions.html

于 2010-01-18T03:30:17.227 回答