【问题标题】:Stop DataGrid from automatically resizing after filtering rows过滤行后停止 DataGrid 自动调整大小
【发布时间】:2016-02-24 01:41:21
【问题描述】:

我正在实现一个带有行过滤器的数据网格,如下所示: http://www.codeproject.com/Articles/42227/Automatic-WPF-Toolkit-DataGrid-Filtering

我的行和列是由我从数据库中获得的结果自动生成的。

我看到的问题是,当我执行过滤器时,我的数据网格会自动调整大小,这有点烦人。我宁愿看到过滤掉的行消失,但保持数据网格的高度。

我已将数据网格的最大高度设置为 150,但在我执行过滤的那一刻,它会自行调整为更短的高度。

如何阻止自动调整大小的发生?例如,如果数据网格加载了 5 行,高度为 150 像素,那么我过滤它以显示 2 行,我仍然希望我的数据网格高度为 150 像素。

谢谢!

【问题讨论】:

  • 能否请您发布您的 XAML?

标签: c# wpf datagrid


【解决方案1】:

您必须设置Height 属性。 MaxHeight 仅限制您的数据网格不会增长到高于该值,但不会限制您的数据网格变短。

<DataGrid Name="yourDataGrid" Height="150" VerticalAlignment="Top">

我不想初始化一个固定的高度,但基本上我只是想要 保持高度。即使我设置 MaxHeight=150,假设我 有 3 行占用高度 100px,当我过滤时,我想 保留100px的高度。

在这种情况下

yourDataGrid.Height= yourDataGrid.ActualHeight;
// Start Filter
// ...
// ClearFilter: clear the fixed height
yourDataGrid.Height = double.NaN;

【讨论】:

  • 我不想初始化固定高度,但基本上我只想保留高度。即使我设置 MaxHeight=150,假设我有 3 行占用高度 100px,当我过滤时,我想保留 100px 的高度。
  • 我正在寻找是否可以设置一个属性来实现我想要的,我想这是一种方法:) 顺便说一句,我真的需要将高度设置回 NaN 吗?跨度>
  • @DhinneshJeevan 是的,如果不是当行数改变网格高度时,请不要遵循这些更改
  • 这就是目的,当行数改变时,我的数据网格高度不应该改变。它应该从一开始就根据加载的行数进行修复。因此,将其设置回 NaN 将不起作用。我已经尝试过了,但它不起作用,忽略 NaN 对我有用。
  • @DhinneshJeevan 对于您的情况来说确实如此,但是从我的应用程序中,我通常会在清除过滤器后清除固定高度。比如向网格插入新行时,如果不清除这个值,gid就不会变高
猜你喜欢
  • 1970-01-01
  • 2017-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-21
  • 2016-01-22
  • 1970-01-01
相关资源
最近更新 更多