Растяжение столбцов для заполнения всего доступного пространства DataGrid

Можно ли растянуть столбцы или последний столбец, чтобы заполнить все доступное пространство сетки данных?

<DataGrid Grid.Row="0" AutoGenerateColumns="True" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Name="dataGrid1"   ItemsSource="{Binding Customers}" />

Мои столбцы создаются автоматически.

Ответ 1

Да, я думаю, вы ищете свойство AutoSizeMode.

int n = grid.Columns.Count;
grid.Columns[n].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

Изменить: Попробуйте установить ширину на "*", как показано ниже. Вы должны будете сделать это в коде, если ваши столбцы будут автоматически сгенерированы.

<DataGrid>
  <DataGrid.Columns>
    <DataGridTextColumn Width="Auto" />
    <DataGridTextColumn Width="*" />
  </DataGrid.Columns>
</DataGrid>

Ответ 2

Попробуйте этот подход, ребята, я написал это сегодня утром, надежный и надежный, и позволяет использовать столбцы ширины в процентах, занимая все свободное пространство. fooobar.com/questions/169433/...

Ответ 3

DataGrid.Columns [x].Width = DataGridLength.Auto;

Ответ 4

Поскольку подавляющее большинство ответов, которые я нашел по этой теме, касается XAML, вот решение С#, позволяющее всем столбцам заполнять доступное пространство в сетке данных.

    foreach (var column in this.DataGrid.Columns)
    {
        column.Width = new DataGridLength(1, DataGridLengthUnitType.Star);
    }