【发布时间】:2011-02-23 08:24:11
【问题描述】:
我最近编写了我的第一个 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;
}
}
有没有更好、更优雅的解决方案来完成同样的事情?
【问题讨论】:
-
您将 GridViewColumn.Width 属性设置为什么?我尝试使用 DataGrid 模拟这种行为,并且 DataGridTextColumn 知道足以在文本更改时进行扩展。您可以将 ListView 换成 DataGrid 吗?