如何构建多级数据网格

时间:2019-04-22 16:02:32

标签: c# wpf entity-framework datagrid

我在C#WPF应用程序中使用Entity Framework 6,并希望在多级数据网格中显示我的数据。

我的数据集包含2个简单实体:

  • 项目:ID,ParentId(可为空),名称
  • 任务:ID,ProjectId,名称

因此,每个任务都附加到一个项目。每个项目都可以有一个可选的父项目。这导致了n个层次的层次结构。 相应的导航属性已经到位(Project.ParentProject,Task.Project)。

到目前为止我已经尝试过:

  1. 将“任务”用作CollectionViewSource并按项目分组。通过使用IValueConverter,我可以遍历所有父项,并将其写入单个组行中,如下所示:“ Project-1 / Project 1.1 / Project 1.1.1”。缺点是我的数据网格中没有层次结构,并且不会显示空项目。
  2. 将项目用作CollectionViewSource-将显示所有项目。但是,既没有想到我如何构建层次结构,也没有想到如何将任务显示为子级。

预期结果将是这样的:

  • 项目1
    • Project-1.1
      • 任务100
  • Project-2
    • Project-2.1
      • Task-200
    • Project-2.2

因此,即使没有任务,每个项目也会按其层次结构显示。稍后,可以选择隐藏所有空项目,只显示带有任务的项目(及其父项目)。

那么有没有人知道如何执行此操作?感谢您的意见和建议!

1 个答案:

答案 0 :(得分:0)

看看RowDetailsTemplate

您可以在此模板中放置一个新的datagrid,它将完成您想要实现的目标。