how can I add a custom non-DataTable column to my DataView, in a winforms ADO.net application?

Posted by Greg on Stack Overflow See other posts from Stack Overflow or by Greg
Published on 2010-01-18T02:21:44Z Indexed on 2010/04/12 17:03 UTC
Read the original article Hit count: 394

Hi,

How could I (/is it possible) to add a custom column to my DataView, and in this column display the result of a specific calculation.

That is, I currently have a dataGridView which has a binding to a DataView, based on the DataTable from my database. I'd like to add an additional column to the dataGridView to display a number which is calculated by looking at this current row plus it's children row. In other words the info for the column isn't just derivable from the row data itself.

Specific questions might be: a) where to add the column itself? to the DataView I assume? b) which method / event to trigger the re-calculation of the value of this custom column from ( / how do I control this)

Thanks

PS. I've also noted if I use the following code/approach I get a infinite loop...

    // 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;
}

What other approach could avoid this looping. i.e. currently I'm saying update the value of the custom column when the row changes, however after then changing the row it triggers antoher 'row has changed' event...

© Stack Overflow or respective owner

Related posts about ADO.NET

Related posts about winforms