[英]In WPF using a ListView is there an elegant way to auto resize items?
最近,我写了我的第一个WPF应用程序,其中包含从Web服务轮询的项目列表。 这些项目通过GridView在ListView中显示/数据绑定。 后台线程定期轮询Web服务并更新列表。
如果说,如果我最初绑定到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;
}
}
是否有更好,更优雅的解决方案来完成同一件事?
这是一种方法。 另一种方法是每次列表中的项目更新时手动重置列宽:
private void ResizeGridViewColumn(GridViewColumn column)
{
if (double.IsNaN(column.Width))
{
column.Width = column.ActualWidth;
}
column.Width = double.NaN;
}
不。我想没有更好的解决方案
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.