我最近写了,我的第一个WPF应用程序,它有一个从web-serivce轮询的项目列表。这些项目通过GridView在ListView中显示/数据绑定。后台线程定期轮询web-serivce并更新列表。
例如,如果我有三个项目最初绑定到ListView,只显示描述和三个描述,其中包括:
- ProjectA
- ProjectB
- ProjectC
稍后添加了一个新项目,其中包含'AReallyReallyLongProjectName'的描述,我最终会得到如下列表:
- ProjectA
- ProjectB
- ProjectC
- AReallyR
GridViewColumn不会更新它的宽度,随后会切断任何扩展原始宽度的新项目。
我添加了一些强制列调整大小的代码,但它看起来有点像hacky。 (设置宽度只是为了将其设置为空而不强制调整大小,这似乎很奇怪)
if(gridView != null) {
foreach(var column in gridView.Columns) {
if (double.IsNaN(column.Width) column.Width = column.ActualWidth;
column.Width = double.NaN;
}
}
是否有更好,更优雅的解决方案来完成同样的事情?
答案 0 :(得分:1)
This是一种方法。另一种方法是每次列表中的项目更新时手动重置列宽:
private void ResizeGridViewColumn(GridViewColumn column)
{
if (double.IsNaN(column.Width))
{
column.Width = column.ActualWidth;
}
column.Width = double.NaN;
}
答案 1 :(得分:0)
不..我想没有更优雅的解决方案