2012-04-24 5 views
0

問題:ダイナミックデータグリッドのヘッダとバインディング

私は、日付、名前、および値のプロパティを持つオブジェクトのリストを持っています。名前と日付のプロパティは異なる場合もあれば、同じ場合もあります。

私はあなたが、オブジェクトが「2012-01-01」のような性質を持っていないので、単純な参照として(個別の日付です)ヘッダとGridViewコントロールを作成し、行

Name 2012-01-01 2013-01-01 
orange  1   0 

たい

orange 2012-01-01 1 
orange 2013-01-01 0 

束縛は助けにならないでしょう。

質問

は、どのように私は、列の名前を使用してバインディングを作成することができますか?私はXAMLまたはコンバータをどうしたいのですが

これは、ユーザーコントロールのイベント

答えて

1

(あなたが気づいたように)あなたがする必要があることは、動的プロパティ(つまり、実行時に設定されたプロパティ)を持つオブジェクトのリストを作成することです。変換自体はDateのピボットであり、値の合計(?)はコンバーター内のGroupBy Linqクエリを使用して実行できます。

トリッキーな部分です。この答えを見てみましょう:

Data binding dynamic data

あなたが動的プロパティを実装するためICustomTypeDescriptorを実装する必要があります。がんばろう。

+0

はい、ピボット変換のように見えますが、目的が異なります。私は実際にdatatableと似たようなことを忘れてしまった。 –

+0

DataTableを使用して問題を解決しました。そのリンクのあなたの答えは、私に多くの助けになります。 –

0

を使用せずに、オブジェクトのリストを取る - あなたの条件でオブジェクトの新しいリストを作成します。新しいリストをitemssourceとしてdatagrid/itemscontrolに追加するだけです。

+0

コンパイル時にヘッダーがわかりません –

関連する問題