У меня есть элемент управления ListView, который имеет 3 столбца: имя, фамилия и адрес.Я хочу, чтобы все 3 столбца имели одинаковую ширину.Единственный способ, которым я придумал, - привязать ширину каждого столбца к ActualWidth предка и использовать конвертер, чтобы разделить эту ширину на 3 следующим образом:
<GroupBox>
<ListView Name="People" ItemsSource="{Binding peopleList}">
<ListView.View>
<GridView >
<GridViewColumn Header="name" DisplayMemberBinding="{Binding Name}">
<GridViewColumn.Width>
<Binding Path="ActualWidth" Source="{RelativeSource Mode=FindAncestor, AncestorType={x:Type GroupBox}}" Converter ="{StaticResource ListViewConverter}"/>
</GridViewColumn.Width>
<GridViewColumn Header="surname" ...>
...
</GridViewColumn>
<GridViewColumn Header="address" ...>
...
</GridViewColumn>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</GroupBox>
Класс преобразования:
class ListViewConverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
double state = (double)value;
return state / 3;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return null;
}
}
Но это не работает.Я думаю, что, возможно, GroupBox не является предком GridViewColumn.Width.Может быть, я все неправильно понял, и есть гораздо более простой способ сделать это?