【发布时间】:2013-01-22 09:53:10
【问题描述】:
我想用某个列填充 WPF ListView 的剩余区域。
我一直在谷歌搜索并找到以下解决方案:
<GridViewColumn Header="Error" DisplayMemberBinding="{Binding ErrorDescription}"
Width="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type ListView}}, Converter={StaticResource WidtConvert}} />
还有转换器:
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
ListView l = value as ListView;
GridView g = l.View as GridView;
double total = 0;
for (int i = 0; i < g.Columns.Count - 1; i++)
{
total += g.Columns[i].ActualWidth;
}
return (l.ActualWidth - total);
}
但问题是,在调用转换器时,包括ListView.ActualWidth 在内的所有列都是0。
我不想在 Listview_SizeChanged 等后面使用任何代码。
【问题讨论】:
-
你试过this CodeProject article的解决方案了吗?