我正在自动生成我的专栏
<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; ,以及代码背后的一切。
感谢。
答案 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
事件,并将代码置于该事件的上方