如何在WPF数据网格中显示N个项目?

问题描述 投票:0回答:1

对于我正在使用的窗口宽度:

SizeToContent="Width"

但是对于高度,我用手硬编码。但如何才能让窗口最多显示 N 个数据网格项呢?

因此,如果项目超过 20 个,则仅显示其中的 20 个,如果少于则显示全部。

c# .net wpf datagrid
1个回答
0
投票

只需在窗口上使用

SizeToContent="WidthAndHeight" MaxHeight="400"
,并使用适当的
MaxHeight
值,以便
DataGrid
中仅可见 20 个项目。

这样所有项目都将被加载,如果项目超过 20 个,将显示滚动条,并且窗口将针对任何较少数量的项目正确调整大小。根据您上面的评论,我认为您正在努力实现这一目标。

当然,如果窗口仍然需要手动完全调整大小,则此解决方案将不起作用。

编辑

既然上面的建议无法应用,这里还有一个...

因此,根据所有信息,如果我不能或不想使用分页,我会这样做:

主窗口.xaml

<Window ...     
        Title="MainWindow"
        SizeToContent="WidthAndHeight">
    <Grid>        
        <DataGrid Name="dataGrid" />        
    </Grid>
</Window>

MainWindow.xaml.cs

public partial class MainWindow : Window
{   
    // Total number of items
    private int dataCount = 0;

    ...

    private void AddDataToGrid(SomeData data)
    {
        // Update item counter
        dataCount += 1;
        // Auto size if now there are 20 or less items, otherwise do not change size
        this.SizeToContent = dataCount <= 20 ? SizeToContent.WidthAndHeight : SizeToContent.Width;

        // Update grid data
        this.dataGrid.Items.Add(data);
    }

    private void RemoveDataFromGrid(SomeData data)
    {
        // Update item counter
        dataCount -= 1;
        // Auto size if now there are 20 or less items, otherwise do not change size
        this.SizeToContent = dataCount <= 20 ? SizeToContent.WidthAndHeight : SizeToContent.Width;

        // Update grid data
        this.dataGrid.Items.Remove(data);
    }   
}

基本上,我会添加添加或删除

DataGrid
项目的方法,然后每次检查项目总数,并根据需要将
SizeToContent
值设置为
WidthAndHeight
 来使窗口高度适合内容Width

© www.soinside.com 2019 - 2024. All rights reserved.