1

我最近编写了我的第一个 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;
    }
}

有没有更好、更优雅的解决方案来完成同样的事情?

4

2 回答 2

1

是一种方法。另一种方法是每次列表中的项目更新时手动重置列宽:

private void ResizeGridViewColumn(GridViewColumn column)
{
    if (double.IsNaN(column.Width))
    {
        column.Width = column.ActualWidth;
    }

    column.Width = double.NaN;
}
于 2010-05-24T18:23:47.847 回答
0

不..我想没有更优雅的解决方案

于 2010-05-28T22:29:09.573 回答