WPF学习笔记(3):ListView根据内容自动调整列宽

DataGrid中,只要不设置DataGrid的宽度和列宽度,或者将宽度设置为Auto,那么表格就会根据内容自动调整宽度,以显示所有内容。但如果是ListView,按以上方法设置,却达不到列宽自动调整的效果, 列宽在控件第一次加载的时候已经确定,之后不会随着某列数据长度的增加和减少而改变列宽。找了很多方法,感觉下面的方法比较简单和实用,在每次增加或者删除数据集合的时候,将 GridViewColumn 的 Width 属性 设置为 无效值,触发其自适应效果。

原贴地址:https://blog.csdn.net/djc11282/article/details/42261677

原贴代码:

1 GridView gv = lvTrans.View as GridView;
2  if (gv != null)
3 {
4        foreach (GridViewColumn gvc in gv.Columns)
5         {
6                gvc.Width = gvc.ActualWidth;
7                gvc.Width = Double.NaN;
8          }
9 }
C# Code

我将代码略作了修改:

1 //使listview根据内容自动调整宽度
2 if (lvAcct.View is GridView gv)
3 {
4        foreach (GridViewColumn gvc in gv.Columns)
5        {
6               gvc.Width = 100;
7               gvc.Width = Double.NaN;
8         }
9 }  
C# Code

猜你喜欢

转载自www.cnblogs.com/lylgt/p/10230194.html