我最近编写了我的第一个 WPF 应用程序,其中包含从 Web 服务轮询的项目列表。这些项目通过 GridView 在 ListView 中显示/数据绑定。后台线程定期轮询网络服务并更新列表。
例如,如果我最初将三个项目绑定到 ListView,它们仅显示一个描述和三个描述,例如:
- ProjectA
- ProjectB
- ProjectC
后来添加了一个带有“AReallyReallyLongProjectName”描述的新项目,我最终会得到一个类似的列表:
- ProjectA
- ProjectB
- ProjectC
- AReallyR
GridViewColumn 不会更新它的宽度,随后会切断任何扩展原始宽度的新项目。
我添加了这段代码来强制调整列的大小,但它看起来有点笨拙。(设置宽度只是为了将其设置为无强制调整大小似乎很奇怪)
if(gridView != null) {
foreach(var column in gridView.Columns) {
if (double.IsNaN(column.Width) column.Width = column.ActualWidth;
column.Width = double.NaN;
}
}
有没有更好、更优雅的解决方案来完成同样的事情?