1

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

<RowDefinition Height="*" />

通常这意味着该行将采用可用高度的 REST 并初始化它。但是,如果 DataGrid 对于屏幕上剩余的空间来说太大,则 DataGird 的按钮会显示在“屏幕下方”而不是滚动条。

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

有什么想法该怎么做吗?

4

2 回答 2

0

我认为你不应该使用StackPanel. 如果OrientationVertical,它的高度将增长到无穷大。也许你应该使用另一个面板。

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

于 2012-12-18T13:25:05.630 回答
0

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

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

比我订阅内部网格的 Loaded 事件并这样做:

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

xxx 是补偿周围其他事物(如标题)的一些值,并且可能应该根据父网格具有的行数来计算。

于 2012-12-19T10:39:31.603 回答