1

1 つのフォームで DataGrid を使用する WPF アプリケーションがあります。ここで、Window_Loaded イベントでそのデータグリッドの「AMOUNT」列の合計を計算したいので、フォームがロードされたときに 1 つの TextBox に AMOUNT 列の合計を表示できます。したがって、DATAGRID のすべての行を反復処理し、「AMOUNT」列の合計を計算する方法。

この合計を WPF Datagrid のフッターに表示するには?

4

2 に答える 2

2

にバインド DataGridDataTableます。その後、すべての行を反復処理できます。

        double sum = 0;
        foreach (var row in myTable)
        {
            sum += double.Parse(row["AMOUNT"].ToString());
        }
        myTextBox.Text = sum.ToString()
于 2013-02-12T08:40:07.377 に答える
1

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

    }
}

編集:すべてのコードがコードブロックに表示されるように書式設定された間隔

于 2013-02-12T09:45:59.317 に答える