English 中文(简体)
how can I add a custom non-DataTable column to my DataView, in a winforms ADO.net application?
原标题:

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...

问题回答

I think this link may be a good answer? Although I m not sure yet whether expression DataColumn.Expression property will be able to handle it yet...(i.e. doing a SUM of all Item.size for all items that are a child of the current one, based on the ITEM_TABLE<==>RELATIONSHIP_TABLE construct. Relationship_table has an ID, ITEM_PARENT_ID, ITEM_CHILD_ID.

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





相关问题
Bring window to foreground after Mutex fails

I was wondering if someone can tell me what would be the best way to bring my application to the foreground if a mutex was not able to be created for a new instance. E.g.: Application X is running ...

How to start WinForm app minimized to tray?

I ve successfully created an app that minimizes to the tray using a NotifyIcon. When the form is manually closed it is successfully hidden from the desktop, taskbar, and alt-tab. The problem occurs ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

Handle DataTable.DataRow cell change event

I have a DataTable that has several DataColumns and DataRow. Now i would like to handle an event when cell of this DataRow is changed. How to do this in c#?

Apparent Memory Leak in DataGridView

How do you force a DataGridView to release its reference to a bound DataSet? We have a rather large dataset being displayed in a DataGridView and noticed that resources were not being freed after the ...

ALT Key Shortcuts Hidden

I am using VS2008 and creating forms. By default, the underscore of the character in a textbox when using an ampersand is not shown when I run the application. ex. "&Goto Here" is not ...

WPF-XAML window in Winforms Application

I have a Winforms application coded in VS C# 2008 and want to insert a WPF window into the window pane of Winforms application. Could you explain me how this is done.

热门标签