我有一个数据网格,显示带有两列文本行数据的项目和一个更大的自由文本细节,我通过一个只带边框和文本块的rowdetails模板显示。
我遇到的问题是文本细节通常大于网格允许的区域。数据网格的默认滚动行为意味着当滚动跳转到下一个项目时,用户无法查看整个细节。如果我使用
解决此问题ScrollViewer.CanContentScroll="False"
然后,当关闭虚拟化时,数据网格变得非常缓慢且行数很多。
我确实认为我可以通过将rowdetail包装在scrollviewer中来解决这个问题,但这不起作用,因为细节区域不限于渲染区域。
那么,有人可以提供一些有用的选择吗?我的WPF知识很少,所以如果有一些明显的方法可以解决这个问题,那就道歉了。
编辑:RowDetailsTemplate
<DataGrid.RowDetailsTemplate>
<DataTemplate >
<Border Background="Gray"
Padding="5,5,5,5" CornerRadius="5">
<TextBlock Background="Transparent"
Foreground="White"
TextWrapping="Wrap"
Text="{Binding Text}"/>
</Border>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
答案 0 :(得分:9)
为RowDetails添加ScrollViewer的一种方法是为RowDetails指定MaxHeight,如下所示
<DataGrid ...>
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<Grid MaxHeight="75">
<ScrollViewer>
<Border HorizontalAlignment="Stretch" CornerRadius="5" Background="Black" Margin="5" Padding="5">
<TextBlock Text="{Binding RowDetails}" Foreground="#509CD5" FontSize="20" Width="300" TextWrapping="Wrap"/>
</Border>
</ScrollViewer>
</Grid>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
<DataGrid.Columns>
<!-- ... -->
</DataGrid>