ListViewにデータを表示する必要がある別のObservableCollectionが含まれているObservableCollectionへのバインディングを使用して作成されたListViewコントロールを作成しようとしています。次のように私は、オブジェクト階層を持って明確にするネストされたObservableCollectionsのデータバインディングのデータテンプレート
:
ClassA
{
int ID = 123;
string Name = "Value";
}
ClassB
{
int ID = 456;
ObservableCollection<ClassA> CollectionOfClassA;
}
ClassC
{
int ID = 789;
ObservableCollection<ClassB> CollectionOfClassB;
}
このことから私は、以下のリストビューのレイアウトで終わるしたい:私は私が必要と仮定しますこれを実現するために
(ClassC.CollectionOfClassB ListView)
+-------------+-------------+------------------+--------------------------------+
| ClassB.ID | CollectionOfClassA.ClassA.ID | CollectionOfClassA.ClassA.ID |
+-------------+-------------+------------------+--------------------------------+
| ClassB.ID | CollectionOfClassA.ClassA.ID | CollectionOfClassA.ClassA.ID |
+-------------+-------------+------------------+--------------------------------+
しかし、ListViewを自分のCollectionOfClassBコレクションにバインドするには、datatemplate構造体とそれに続く行を生成するためのバインドが少し不便です。
誰も私の助けてくれますか?
多くのおかげで、
編集:
上記の表の最初の列はClassC.CollectionOfClassBコレクション内のインデックス付きオブジェクトのIDフィールドを参照し、各列はに格納されている個々のオブジェクトでありますCollectionOfClassB。
CollectionOfClassBに格納されている各ClassBオブジェクトには、独自のCollectionOfClassAがあります。これは、親と同じ行のlistviewに配置しようとしています。 CollectionOfClassAの各ClassAオブジェクトは列です。
編集2:最初の列はCollectionOfClassBにおける現在のアイテムのためのClassBのからIDフィールドによって取り込まれ
、後続の列はCollectionOfClassAの各項目のデータが取り込まれます。列ヘッダーはClassA.IDになりますが、コンテンツはClassA.Nameなどになります。
私はこれを実現するためのXAMLマークアップを探しています。
をソートするように内蔵されたGridViewの機能を使用していません。行の中にサブグリッドのようなものを表示するつもりですか? –
@VitorCanova私が達成しようとしていることをうまく明確にするために私の元の投稿を編集しました。 – Unflux
この例では、繰り返し列があります。 – Paparazzi