UI của tôi:GridViewColumn Width Adjustment
<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 của giao diện người dùng của tôi:
internal void Update(IEnumerable<Person> pers)
{
this.persons.ItemsSource = null;
this.persons.ItemsSource = pers;
UpdateLayout();
}
Đối tượng của tôi:
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
Các GridViewColumn có độ rộng của GridViewColumn-Header. Ngay cả khi tôi gọi Update() với Người có tên dài. Cột không được thay đổi kích thước.
a) Làm cách nào tôi có thể tự động đổi kích thước cột "Tên" (khi tôi gọi là Cập nhật) thành độ dài của tên dài nhất, nhưng không dài hơn Giá trị x (tôi muốn chỉ định chiều rộng tối đa của cột) ?
b) Làm cách nào tôi có thể chỉ định rằng "Độ tuổi" -Molumn lấp đầy khoảng trống vào đầu điều khiển (sao cho các cột của chế độ xem lưới sử dụng toàn bộ chiều rộng của điều khiển)?
Tôi biết điều này là khá cũ, nhưng tôi muốn làm nổi bật, tầm quan trọng của thời gian sửa 'ColumnWidth' là gì và nó thực sự hoạt động tốt khi được áp dụng đúng. Đảm bảo rằng vùng chứa GridView được tải và hiển thị. Tôi đã có một sự kết hợp khá khó chịu của một GridView được đặt bên trong một expander đó là lần lượt một phần của một điều khiển cha mẹ ảo hóa. Có nghĩa là, một thay đổi kích cỡ trong khi bị tắt màn hình sẽ mang lại độ rộng bằng không và các mục có thể thay đổi khi mẫu được tái chế cho các dữ liệu khác nhau. Bây giờ tôi rất hài lòng với giải pháp của tôi. – grek40