在同一个数据网格中显示父/子行

时间:2012-03-19 19:06:03

标签: wpf datagrid wpfdatagrid

寻找有关如何最好地解决此问题的一些指导。

我需要创建一个显示一些父行的数据网格,并且在每个父行上我们都有一个展开/折叠按钮。单击此按钮将导致一些相关的子行显示在父行下。

我已经通过在父数据网格上使用rowdetailstemplate实现了这一点,当展开时显示另一个数据网格,然后显示相关的子行。之前的问题Displaying hierarchal parent child data in WPF DataGrid显示了详细信息..

这样做没问题,但是问题是每个父行有效地为子节点创建了一个单独的数据网格,所以像键盘导航这样的东西不能很好地工作,因为跳过了子rowdetails区域,我们唯一的事情就是导航是父母。

其他问题是当我们用鼠标选择子行时,我们最终会突出显示为选中的几行。这是可以理解的,因为每个网格都是单独的控制。

目的是在选择,导航等方面将子行与父行相同。

有没有人对如何解决这个问题有任何指示或指导?

由于

1 个答案:

答案 0 :(得分:1)

WPF DataGrid不能用于轻松的分层树视图样式表示。有一个TreeListView控件,但在虚拟化,编辑,单元格\行选择等方面它不是复杂的WPF数据网格。但鉴于您的数据网格将是只读的并且您的选择是逐行的,您可以应用样式这个控件使它看起来像一个WPF数据网格。