如何在数据网格/树视图中显示两个表,显示父表和子表的列(扩展子项时)

时间:2011-01-19 17:00:17

标签: c# wpf datagrid .net-4.0 treeview

我正在尝试使用TreeView / DataGrid来显示一些数据。我需要显示顶级项目的列,但也显示扩展级别的标题。

我有一个包含两个表格的数据集,例如订单和物品,物品都有订单的外键。

Dataset from Visual Studio

我正在尝试将数据集绑定到datagrid / tree视图,以便显示订单列表。

WinFrom DataGrid可以显示DataSet中的多个表:

Data Grid Example

我设置的内容:

dataGrid.DataSource = dataSet;
dataGrid.DataMember = "Orders";

单击[+]会展开行以显示链接:

Expanded DataGrid

按照该链接显示项目表:

DataGrid Items shown

我所追求的是两者的混合,但在WPF中:

Merged

我在这个例子中使用了一个数据集,但是我可以将我的数据按到WPF可以用来以我想要的方式显示数据的集合等。

我查看了TreeListView,它为我提供了顶级项目标题,但是我正在试图让我们展示展开的项目标题。有人能指出我正确的方向,谢谢。

更新我回过头来看这个问题。根据@ offapps-cory的回答,我尝试使用带有listview的扩展器的ListView。第一次尝试:

enter image description here

正如你所看到的那样,它在细胞中扩展了:)我想也许我可以把树视图放到混合中......

1 个答案:

答案 0 :(得分:2)

您是否可以使用嵌套在项目中的ListViews的ListBox?虽然我没有嵌套ListViews,但我已经嵌套了多个级别的ListBox,以实现我需要的一些功能。

我最初认为可以通过自定义TreeViewItem模板和ItemsPresenter来解决问题,但ItemsPresenter需要一个Panel,而ListView是一个控件。

我会尝试创建一个带有ListView / GridView的DataTemplate和一个扩展器。您可能需要做一些有趣的数据绑定才能使其正常工作,但我不明白为什么它不起作用。