我在 WPF 中有一个 DataGrid,其中包含多语言列标题。最初创建 DataGrid 时,列会自动调整为正确的宽度。当用户更改语言时,列标题不再适合。我希望它们再次调整大小。我在我的 DataGrid 上尝试过 UpdateLayout 和 InvalidateParentLayout 。都不起作用。
<DataTemplate x:Key="HeaderIDTemplate">
<TextBlock Text="{Binding ElementName=Library_UC, Path=DataContext.Language_Library.ID}"/>
</DataTemplate>
<DataGridTemplateColumn HeaderTemplate="{StaticResource HeaderIDTemplate}" CellTemplate="{StaticResource IDTemplate}" Width="Auto"/>
大概当您更改语言时,请求会发送到服务器,因此您有一个由语言更改触发的事件处理程序。您的数据可能也在刷新。因此,让我们循环列并设置它们的大小:
foreach (DataGridColumn c in yourGrid.Columns) {
column.Width = new DataGridLength(1.0, DataGridLengthUnitType.Auto);
}
DataGridView.AutoResizeColumn 也可能有帮助。