1

私は持っている

Class A
{
private string mName;
private int mId;
private int mType;
private int mqty;
/*
property to view variables.
*/
}

BindingList<A> listofA =  new BindingList<A>();

「listofA」は datagridview コントロールにバインドされています。

dataGridView1.DataSource=listofA;

として表示されます。

------------------
|Name|Id|Type|Qty|
------------------
|CatA| 1|   0|  5|
|CatB| 2|   0|  6|
|DogA| 3|   1|  7|
|DogB| 4|   1|  8|

バインドされていない行を表示したい。

------------------
|Name|Id|Type|Qty|
------------------
|CatA| 1|   0|  5|
|CatB| 2|   0|  6|
|Cats|__|   0| 11| <------sum of qty 
|DogA| 3|   1|  7|
|DogB| 4|   1|  8| 
|Dogs|__|   1| 15| <------sum of qty

「クラスA」にBoolを追加することを考えていましたが、falseの場合はアイテムとして、trueの場合は合計として機能します。

これを行うより良い方法はありますか。

4

1 に答える 1

0

私がすることは、RowDataBound イベントのコードです。

1) 前の行のデータを比較します (例: 動物の種類)。異なる場合は、カテゴリの最後に到達したことがわかります。同じ場合は、合計する必要があるさまざまな値を合計する必要があります

2a) タイプは同じでした。まとめを行いました。これ以上何もする必要はありません。

2b) タイプが異なっていた場合、合計値で新しい行を作成し、合計変数をリセットします

于 2013-06-12T09:53:40.237 に答える