数据网格自动生成的列:增加宽度

本文关键字:增加 数据网 网格 自动生成 数据 | 更新日期: 2023-09-27 17:55:09

有没有办法将自动生成的列的宽度增加固定量?我正在尝试执行以下操作,但它不起作用:

private void dgvMailingList_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
     e.Column.Width += 30; 
}

即使e.Column.Width = e.Column.Width + 30;也不起作用,因为Width的默认UnitTypeAuto,因此e.Column.Width返回1.0而不是实际像素宽度。 UnitType本身是只读的,所以也不能玩。 ActualWidth也将设置为0 AutoGeneratingColumn事件。正确的方法是什么?

数据网格自动生成的列:增加宽度

引发事件时AutoGeneratingColumns列尚未在 UI 上呈现。因此,实际宽度为 0.0。

使用Loaded事件循环列并按所需的常量因子增加宽度。

private void dataGrid_Loaded(object sender, RoutedEventArgs e)
{
    foreach (var column in ((DataGrid)sender).Columns)
    {
        column.Width = new DataGridLength(column.ActualWidth + 30);
    }
}