これが私の問題の言い換え版です:
これは、私が探している結果のスクリーンショットです (アプリケーションの古い非 C#/WPF バージョンから):
他のすべてのグリッド ツリー ビューとObjectListViewが提供するもののように見えます。しかし、残念ながら、従わなければならないルールがいくつかあります。
- WPF
- MVVM
- DataGrid とそのコンポーネントのみを使用する必要があります (TreeView、ListView などは使用できません)。
- アイテムは、の列のデータを保持する場所など
ObservableCollection<T>
に保持されます。T.Property1
T.Property2
DataGrid
- アイテムの下位レベルは
T.PropertyChilds
タイプが保持されており、ObservableCollection<T>
事前に知られていない/満たされていません。これらは、アイテムの最初の展開時にロードする必要があります。
同様のデータのスクリーンショットと、これまでに WPF/C# で取得したものを次に示します。
標準の DataGrid のように見えます。ただし、保持できる列、列が表示している T のプロパティ、現在表示されている列などは、基本的に のpublic ObservableCollection<DataGridColumn> Columns
Collection に列を追加するだけの DataGrid に関する独自のフレームワークによって定義されますSystem.Windows.Controls.DataGrid
。
私の仕事は、DataGridColumn
上記のViewModelの階層データ構造を表示およびロードできる派生クラスを作成することです。
私が直面している主な問題は、私が知る限り次のとおりです。 - DataGrid 列のツリービューのようにレベルを視覚的に表示する方法 - チャイルドからロードされたデータを処理して、上の最初のスクリーンショットのように表示する方法。ObservableCollection<T>
ロードされた ChildData と、レベルや親などの追加のプロパティを追加するフラットを実行する必要がありますか?それとも、DataGrid の階層データ テンプレートの種類を定義することは可能ですか?
ありがとうございます