ListView
WPF の残りの領域を特定の列で埋めたいと思います。
私はグーグルで調べていて、次の解決策を見つけました:
<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
たとえば、などでコードビハインドを使用したくありません。