DataGrid在自动生成列时设置代码后面的列大小

时间:2011-07-30 07:07:00

标签: c# .net wpf wpfdatagrid

我正在自动生成我的专栏

<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>

我只想附加到每一栏&#34; Auto&#34; ,到最后&#34; *&#34; ,以及代码背后的一切。

感谢。

1 个答案:

答案 0 :(得分:9)

尝试这样的事情

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时,您可以处理dataGrid的AutoGeneratedColumns事件,并将代码置于该事件的上方