Tôi đang sử dụng ListView
với GridView
. Có GridViewColumn
thay đổi kích thước sự kiện không?WPF: GridViewColumn thay đổi kích thước sự kiện
Trả lời
Hãy xem MSDN DridViewColumn details. Nó không appaer để có một sự kiện như vậy, có lẽ một số workaround yêu cầu, tôi không chắc chắn mặc dù. có look here
Hy vọng điều đó sẽ hữu ích.
Mặc dù GridViewColumn
dường như không có sự kiện Resize
, bạn có thể liên kết với thuộc tính ColumnWidth
.
Bạn có thể xác minh điều này bằng mẫu XAML bên dưới - không cần mã nào cần thiết cho ví dụ này. Nó chỉ liên kết theo một hướng, từ chiều rộng cột đến hộp văn bản và khi bạn đổi kích thước, bạn sẽ thấy hộp văn bản ngay lập tức cập nhật với chiều rộng cột.
(Đây chỉ là một ví dụ đơn giản; nếu bạn muốn lấy lại kích thước trong mã, tôi sẽ tạo một lớp với thuộc tính Width
để ràng buộc sẽ hoạt động theo cả hai hướng).
<StackPanel>
<ListView>
<ListView.View>
<GridView>
<GridViewColumn Width="{Binding ElementName=tbWidth1, Path=Text, Mode=OneWayToSource}" />
<GridViewColumn Width="{Binding ElementName=tbWidth2, Path=Text, Mode=OneWayToSource}" />
</GridView>
</ListView.View>
<ListViewItem>Item 1</ListViewItem>
<ListViewItem>Item 2</ListViewItem>
</ListView>
<TextBox Name="tbWidth1" />
<TextBox Name="tbWidth2" />
</StackPanel>
Tôi sẽ xử lý sự kiện PropertyChanged
thay thế. Sự kiện này được PropertyChanged
chưa từng thấy trong Visual Studio IntelliSense, nhưng bạn có thể đánh lừa nó :)
GridViewColumn column = ...
((System.ComponentModel.INotifyPropertyChanged)column).PropertyChanged += (sender, e) =>
{
if (e.PropertyName == "ActualWidth")
{
//do something here...
}
};
Rất đẹp (+1). Xem điều này cho một hàm ý của kỹ thuật này trong thuộc tính đính kèm: http://wpftoolbelt.codeplex.com/SourceControl/changeset/view/33225#457436. –
______Thanks :) –