c# - WPF 数据网格虚拟化和自动高度(不明确)

标签 c# .net wpf virtualization wpfdatagrid

我正在尝试设计一个带有数据网格、网格拆分器和包含一些消息的底部面板的 View 。像这样的东西:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="10"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>

    <toolkit:DataGrid Grid.Row="0" {details...} />
    <GridSplitter Grid.Row="1" {details...} />
    <TextBox Grid.Row="2" {details...} />
</Grid>

此布局看起来很完美 - 网格填充了 View 的大部分,并且我有分隔符以在必要时展开底部的文本框。问题是 Datagrid 变得非常大,我需要启用虚拟化。这只有在我相信为网格容器提供明确高度的情况下才有效?

有没有办法获得我想要的布局(网格填充所有可用空间)同时启用虚拟化?

最佳答案

Is there a way to get the layout I want (where the grid fills all available space) but also have virtualization enabled?

虚拟化在您描述的场景中应该可以正常工作,只要 Grid 的父级没有在垂直方向上测量到无穷大。如果是这样,分离器将无法工作。

您如何确定您的 DataGrid 中的行没有被虚拟化?

请注意,DataGrid 确实在您的场景中具有明确的高度。更具体地说,父 Grid 仍将 DataGrid 测量到一个明确的高度(考虑到其他行后 Grid 中剩余的垂直空间)。

关于c# - WPF 数据网格虚拟化和自动高度(不明确),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2239111/

相关文章:

c# - 错误 : Could not load file or assembly or one of it's dependencies

c# - 在另一个完成后运行 BackgroundWorker

.net - MDI Child .Show() 方法在框架中引发 NullReferenceException

.net - 警告 MSB3276 - 发现同一依赖程序集的不同版本之间存在冲突

.net - 在 SQL Server 2005 上进行生产并针对 SQL Server 2008 进行开发的风险有多大

wpf - 将数据集/数据表绑定(bind)到 xaml 数据网格

c# - 复杂的 Linq-to-SQL where 条件帮助

c# - 如何使用 C# 清除 DataGridView 中的行?

c# - Prism 导航 - 上一个和下一个 View

c# - 用于 C# 的 Internet 连接共享 api