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

nxowjjhe  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(110)

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

bvhaajcl1#

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

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

DataGridView.AutoResizeColumn可能也有帮助。

相关问题