语言更改时自动调整 DataGrid 列宽

问题描述 投票:0回答:1

我在 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"/>


c# wpf datagrid
1个回答
0
投票

大概当您更改语言时,请求会发送到服务器,因此您有一个由语言更改触发的事件处理程序。您的数据可能也在刷新。因此,让我们循环列并设置它们的大小:

foreach (DataGridColumn c in yourGrid.Columns) {
    column.Width = new DataGridLength(1.0, DataGridLengthUnitType.Auto);
}

DataGridView.AutoResizeColumn 也可能有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.