Мой UI:GridViewColumn Регулировка ширины
<ListView Name="persons" SelectionChanged="persons_SelectionChanged">
<ListView.View>
<GridView AllowsColumnReorder="False">
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" Width="auto"/>
<GridViewColumn Header="Age" DisplayMemberBinding="{Binding Age}" Width="auto"/>
</GridView>
</ListView.View>
</ListView>
Codebehind моего интерфейса:
internal void Update(IEnumerable<Person> pers)
{
this.persons.ItemsSource = null;
this.persons.ItemsSource = pers;
UpdateLayout();
}
Мои Сущности:
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
В GridViewColumns имеют ширину GridViewColumn-заголовка. Даже если я вызываю Update() с людьми с длинным именем. Колонка не изменяется.
a) Как я могу изменить размер «Имя» -колонка автоматически (когда я вызвал обновление) до длины самого длинного имени, но не дольше значения x (я хочу указать максимальную ширину столбца) ?
b) Как я могу указать, что поле «Возраст» заполняет пространство до конца элемента управления (так что столбцы gridview используют полную ширину элемента управления)?
Я знаю, что это довольно старый, но я хочу подчеркнуть, насколько важны сроки исправления «ColumnWidth» и что он действительно работает хорошо при правильном применении. Убедитесь, что контейнер GridView загружен и видим. У меня было довольно неприятное сочетание GridView, размещенного внутри расширителя, который, в свою очередь, был частью виртуализирующего родительского элемента управления. Значение, изменение размера при выключенном экране приведет к нулевой ширине, и элементы могут измениться, когда шаблон будет переработан для разных данных. Теперь я доволен своим решением. – grek40