0

这是我的问题的改写版本:

这是我正在寻找的结果的屏幕截图(来自较旧的非 C#/WPF 版本的应用程序): 目标

看起来像所有其他网格树视图以及ObjectListView提供的内容。但不幸的是,我必须遵守一些规则:

  • WPF
  • MVVM
  • 只能使用 DataGrid 及其组件(不能使用 TreeView、ListView 等)
  • Items 保存在ObservableCollection<T>where 中T.Property1T.Property2等保存了 的列的数据DataGrid
  • 项目的较低级别是保留T.PropertyChilds类型ObservableCollection<T>,并且事先不知道/填充。它们必须在项目的第一次扩展时加载。

这是类似数据的屏幕截图,以及到目前为止我在 WPF/C# 中得到的数据: 当前的 WPF

它看起来像一个标准的 DataGrid。但是它可以容纳哪些列,列显示的 T 的哪个属性,当前可见的列等等是由围绕 DataGrid 的自己的框架定义的,该框架基本上只是将列添加到public ObservableCollection<DataGridColumn> Columnsa 的集合中System.Windows.Controls.DataGrid

我现在的任务是创建一个派生的新类,该类DataGridColumn可以显示和加载上述 ViewModel 的分层数据结构。

据我所知,我面临的主要问题是: - 如何在 DataGrid 列中像树视图一样可见地显示级别 - 如何处理从子级加载的数据,以便它们显示在上面的第一个屏幕截图中。我是否必须做一个平面ObservableCollection<T>,在其中添加加载的 ChildData 和一些额外的属性,如 level 和 parent - 或者是否可以为 DataGrid 定义一种分层数据模板?

非常感谢索科

4

0 回答 0