我正在自动生成我的列
<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>
我只想附加到每一列 "Auto"和最后一个 "*"以及代码后面的所有内容。
谢谢。
最佳答案
尝试这样的事情
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
事件并将上面的代码放在该事件中
关于c# - DataGrid 在自动生成列时在代码后面设置列的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6881684/