ListView中GridViewColumn中Width="auto"无效的原因

xiaoxiao2021-02-28  118

在GridViewColumn里width=”auto”时,发现除了初次加载时起作用之外,DisplMember绑定的内容改变时WIdth并不自动更新。原因是:

The GridView recalculates column content sizes only when the template or internal column collection change, that’s why Width=”Auto” only works on loading the GridView.

翻译的意思大概是

GridView只有当模板或内部列集合的变化时才会更新列内容大小,这就是为什么Width=”auto”只能在加载GridView时触发。

按照字面意思我在每次更新后都新增一个列,然后删除,试图触发width更新,但是都不起作用。 在国外的网站上某大神分享了一个解决办法,解决方法如下

private void changeColumnWidth() { var gv = (GridView) lst_filter.View; foreach (var column in gv.Columns) { if (double.IsNaN(column.Width)) { column.Width = column.ActualWidth; } column.Width = double.NaN; } }

在绑定的数据更新后调用此函数,发现可以完成width的更新 原文https://stackoverflow.com/questions/560581/how-to-autosize-and-right-align-gridviewcolumn-data-in-wpf

转载请注明原文地址: https://www.6miu.com/read-49409.html

最新回复(0)