mwt*_*wtb 7 wpf datagrid scroll rowdetails
我有一个数据网格,显示带有两列文本行数据的项目和一个更大的自由文本细节,我通过一个只带边框和文本块的rowdetails模板显示.
我遇到的问题是文本细节通常大于网格允许的区域.数据网格的默认滚动行为意味着当滚动跳转到下一个项目时,用户无法查看整个细节.如果我通过使用解决这个问题
ScrollViewer.CanContentScroll="False"
Run Code Online (Sandbox Code Playgroud)
然后,当关闭虚拟化时,数据网格变得非常慢,并且有大量行.
我确实认为我可以通过在rowviewer中包装rowdetail来解决这个问题,但这不起作用,因为细节区域不限于渲染区域.
那么,有人可以提供一些有用的选择吗?我的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>
Run Code Online (Sandbox Code Playgroud)
为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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3950 次 |
| 最近记录: |