0

問題:

日付、名前、値のプロパティを持つオブジェクトのリストがあります。NameプロパティとDateプロパティは、異なる場合も同じ場合もあります。

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

ヘッダー(個別の日付)と行を使用してGridViewを作成したい

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

ご覧のとおり、オブジェクトには「2012-01-01」のようなプロパティがないため、単純なバインディングは役に立ちません。

質問

列の名前を使用してバインディングを作成するにはどうすればよいですか?

これは、UserControlのイベントを使用せずに、XAMLまたはコンバーターで実行したいものです。

4

2 に答える 2

1

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

トリッキーな部分です。この答えを見てください:

データバインディング動的データ

動的プロパティを実装するには、ICustomTypeDescriptorを実装する必要があります。幸運を。

于 2012-04-24T10:01:29.263 に答える
0

オブジェクトのリストを取得します-条件を使用してオブジェクトの新しいリストを作成します。次に、新しいリストをitemssourceとしてdatagrid/itemscontrolに配置します。

于 2012-04-24T09:40:30.927 に答える