C# 在呈现之前强制WPF ListView更新DesiredSize

C# 在呈现之前强制WPF ListView更新DesiredSize,c#,wpf,listview,layout,C#,Wpf,Listview,Layout,我有一个具有“自动”列宽的WPF列表视图。渲染后,列宽与内容正确匹配,这是正常的 我需要在分配给ItemsSource之后,在渲染之前确定ListView的正确(渲染)所需大小 问题在于调用Measure()会破坏自动宽度行为-它会调整列的大小以匹配标题内容: 我想到的唯一一个技巧是手动在标题中添加空格 listView.ItemsSource = myCollection; // now listView.DesiredSize is 0 listView.Measure(new Size(2

我有一个具有“自动”列宽的WPF列表视图。渲染后,列宽与内容正确匹配,这是正常的

我需要在分配给ItemsSource之后,在渲染之前确定ListView的正确(渲染)所需大小

问题在于调用Measure()会破坏自动宽度行为-它会调整列的大小以匹配标题内容:

我想到的唯一一个技巧是手动在标题中添加空格

listView.ItemsSource = myCollection;
// now listView.DesiredSize is 0
listView.Measure(new Size(2000, 2000));  // this breaks "Auto" widths