DataGrid Установка размера столбцов в коде, когда столбцы создаются автоматически - PullRequest
2 голосов
/ 30 июля 2011

Я автоматически генерирую свои столбцы

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

Теперь я хочу установить размер каждого столбца в коде, чтобы сделать что-то вроде этого

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

Я просто хочу прикрепить к каждому столбцу «Авто» и к последнему «*», и все в коде позади.

Спасибо.

1 Ответ

9 голосов
/ 30 июля 2011

Попробуйте что-то вроде этого

int lastColumn= dataGrid.Columns.Count -1;
dataGrid.Columns[lastColumn].Width = new DataGridLength(0, DataGridLengthUnitType.Star);

for(int i = 0 ; i < dataGrid.Columns.Count -1; i ++)
    dataGrid.Columns[i].Width = new DataGridLength(0, DataGridLengthUnitType.Auto);

Поскольку вы AutoGeneratingColumns, вы можете обработать событие AutoGeneratedColumns dataGrid и поместить код выше в это событие

...