我有一个带有“自动”列宽的WPF ListView。渲染后,列宽正确匹配内容,即可。
在渲染之前,我需要在分配给ItemsSource之后立即确定ListView的正确(渲染)DesiredSize。
问题是调用Measure()会破坏自动宽度行为 - 它会调整列的大小以匹配标题内容:
listView.ItemsSource = myCollection;
// now listView.DesiredSize is 0
listView.Measure(new Size(2000, 2000)); // this breaks "Auto" widths
我想到的唯一的黑客就是手动向标题添加空格。