1 つのフォームで DataGrid を使用する WPF アプリケーションがあります。ここで、Window_Loaded イベントでそのデータグリッドの「AMOUNT」列の合計を計算したいので、フォームがロードされたときに 1 つの TextBox に AMOUNT 列の合計を表示できます。したがって、DATAGRID のすべての行を反復処理し、「AMOUNT」列の合計を計算する方法。
この合計を WPF Datagrid のフッターに表示するには?
1 つのフォームで DataGrid を使用する WPF アプリケーションがあります。ここで、Window_Loaded イベントでそのデータグリッドの「AMOUNT」列の合計を計算したいので、フォームがロードされたときに 1 つの TextBox に AMOUNT 列の合計を表示できます。したがって、DATAGRID のすべての行を反復処理し、「AMOUNT」列の合計を計算する方法。
この合計を WPF Datagrid のフッターに表示するには?
にバインド DataGrid
しDataTable
ます。その後、すべての行を反復処理できます。
double sum = 0;
foreach (var row in myTable)
{
sum += double.Parse(row["AMOUNT"].ToString());
}
myTextBox.Text = sum.ToString()
DataGrid を DataSet に変換する関数:
namespace WpfApplication1
{
static class ExtClass
{
public static DataSet ToDataSet<T>(this IList<T> list)
{
Type elementType = typeof(T);
DataSet ds = new DataSet();
DataTable t = new DataTable();
ds.Tables.Add(t);
//add a column to table for each public property on T
foreach (var propInfo in elementType.GetProperties())
{
Type ColType = Nullable.GetUnderlyingType(propInfo.PropertyType) ?? propInfo.PropertyType;
t.Columns.Add(propInfo.Name, ColType);
}
//go through each property on T and add each value to the table
foreach (T item in list)
{
DataRow row = t.NewRow();
foreach (var propInfo in elementType.GetProperties())
{
row[propInfo.Name] = propInfo.GetValue(item, null) ?? DBNull.Value;
}
t.Rows.Add(row);
}
return ds;
}
}
}
編集:すべてのコードがコードブロックに表示されるように書式設定された間隔