RowDetailsTemplate中带有DataGrid的WPF DataGrid不会获得垂直滚动条

时间:2012-12-18 11:01:02

标签: wpf datagrid scrollbar rowdetailstemplate

我有一个带有RowDetailsTemplate的DataGrid,它包含一个DataGrid。 父网格放在它自己的行中。 该行定义为

<RowDefinition Height="*" />

通常这意味着该行将采用可用高度的REST并初始化它。但是如果DataGrid对于屏幕上留下的空间来说太大了,那么DataGird的底部会在“屏幕下”消失,而不是获得滚动条。

我试图通过为父网格定义MaxHeight = 400来解决它,但是,即使是,父网格的长度也是无限的,并且仍然很长,以至于它的部分是不可见的。

有什么想法可以做些什么吗?

2 个答案:

答案 0 :(得分:0)

我认为你不应该使用StackPanel。如果OrientationVertical,则其高度会增加到无穷大。也许你应该使用另一个小组。

另请参阅此链接:ScrollViewer not scrolling in WPF

答案 1 :(得分:0)

将MaxHight设置为父网格对网格的高度没有任何影响。 另一方面,将MaxHight设置为内部网格确实有效。

因此我这样解决了: 首先,我把我的行命名为“rowGridRow”。

比我订阅内部网格的Loaded事件并执行此操作:

    private void dgGroupMedlem_Loaded(object sender, RoutedEventArgs e)
    {
        DataGrid dgGroupMedlem = sender as DataGrid;
        dgGroupMedlem.MaxHeight = rowGridRow.ActualHeight - xxx;
    }

xxx是一些补偿其他内容的值(如标题),应该可以根据父网格的行数进行计算。