2011-01-21 9 views
3

1つのテーブルにまとめて表示する2つのコレクションがあります。私はこれに水平なDataGridを使用するつもりで、DataGridにコレクションを公開するのが最善の方法であることを理解しようとしています。 (水平なDataGridソリューションについては、WPF horizontal DataGridを参照してください)WPFは1つのDataGridで2つのコレクションを結合します

椅子とテーブルを備えた無意味な例です。 XAMLで

public List<Table> TableList { get; set; } 
public List<Table> ChairList { get; set; } 

私は私が手になるように組み合わせリストにデータバインドしたい:私のアプリケーションでは、私はテーブルのリストと(表と椅子の両方が日付とNumberOfItems特性を持っている)椅子のリストを持っています以下のようなもの:

Date    | 01-Jan-2011 | 02-Jan-2011 | 03-Jan-2011 | 04-Jan-2011 
Number of tables |  5  |  6  |    |  7  
Number of chairs |  3  |    |  2  |  

TABLELISTとChairListは、アイテムの数が同じではありません。 バインド可能な結合コレクションを公開するにはどうすればよいでしょうか?

答えて

1

DataGridをDataTableのDataViewにバインドしました。私はnullable TableとChairプロパティを各日付に使用してFurniturePerDateオブジェクトを作成し、FurniturePerDateのコレクションを使用してDataTableを作成しました。非常に柔らかいですが、私のユースケースではうまくいきます。

7

CompositeCollectionクラスをお試しください。良い例はhereで、複合リスト内の複数のアイテムタイプのテンプレート作成方法の表示も含まれています。コード内でコレクションを作成してバインドする方法や、別々にバインドされた2つのコレクションからXamlでコレクションを作成する方法があります。

+0

CompositeCollectionを使用すると、テーブルの数と椅子の数が混在した1行、各ソースコレクションの日付ごとに1列になるため、家具の例では2011年1月1日の列が重複します – eriksmith200

関連する問題