这是我的问题的改写版本:
这是我正在寻找的结果的屏幕截图(来自较旧的非 C#/WPF 版本的应用程序):
看起来像所有其他网格树视图以及ObjectListView提供的内容。但不幸的是,我必须遵守一些规则:
- WPF
- MVVM
- 只能使用 DataGrid 及其组件(不能使用 TreeView、ListView 等)
- Items 保存在
ObservableCollection<T>
where 中T.Property1
,T.Property2
等保存了 的列的数据DataGrid
。 - 项目的较低级别是保留
T.PropertyChilds
类型ObservableCollection<T>
,并且事先不知道/填充。它们必须在项目的第一次扩展时加载。
这是类似数据的屏幕截图,以及到目前为止我在 WPF/C# 中得到的数据:
它看起来像一个标准的 DataGrid。但是它可以容纳哪些列,列显示的 T 的哪个属性,当前可见的列等等是由围绕 DataGrid 的自己的框架定义的,该框架基本上只是将列添加到public ObservableCollection<DataGridColumn> Columns
a 的集合中System.Windows.Controls.DataGrid
。
我现在的任务是创建一个派生的新类,该类DataGridColumn
可以显示和加载上述 ViewModel 的分层数据结构。
据我所知,我面临的主要问题是: - 如何在 DataGrid 列中像树视图一样可见地显示级别 - 如何处理从子级加载的数据,以便它们显示在上面的第一个屏幕截图中。我是否必须做一个平面ObservableCollection<T>
,在其中添加加载的 ChildData 和一些额外的属性,如 level 和 parent - 或者是否可以为 DataGrid 定义一种分层数据模板?
非常感谢索科