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

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

我只想附加到每一列 "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/

相关文章:

c# - PrintDialog.PrinterSettings 不工作

c# - 多维数组 [][] 与 [,]

.net - 随着索引和文档数量不变,elasticsearch 批量索引会随着时间变慢

wpf - 直接在 WPF MVVM 中查看更新模型,而不是 ViewModel

c# - 使用 Jquery 动态查找中继器中的控件

c# - C#中的类可以指向它自己吗

.net - 如何通过将 .cs 文件作为脚本执行来避免编写 .bat 文件?

c# - 这怎么会抛出 NullReferenceException?

c# - 有什么方法可以创建用户界面,可以显示按钮,就像 windows media player 在最小化时如何显示一样?

c# - 制作 xaml 子元素的副本