【发布时间】:2012-02-23 10:21:06
【问题描述】:
我的用户界面:
<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>
我的 UI 的代码隐藏:
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-Header 的宽度。即使我用名字很长的人调用 Update()。列不会调整大小。
a) 我怎样才能自动(当我调用更新时)将“名称”列调整为最长名称的长度,但不超过值 x(我想指定列的最大宽度)?
b) 我如何指定“Age”-Column 将空间填充到控件的末尾(以便 gridview 的列使用控件的完整宽度)?
【问题讨论】: