8

我有一个数据网格,它显示具有两列文本行数据和一个更大的自由文本详细信息的项目,我通过只有一个边框和一个文本块的 rowdetails 模板显示。

我遇到的问题是文本细节通常大于网格允许的区域。数据网格的默认滚动行为意味着当滚动跳转到下一个项目时,用户无法查看整个细节。如果我通过使用解决这个问题

ScrollViewer.CanContentScroll="False"

然后,随着虚拟化的关闭,数据网格变得异常缓慢,并且行数很多。

我确实认为我可以通过将 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>
4

1 回答 1

10

为 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>
于 2010-11-15T10:19:21.430 回答