WPF: событие изменения размера GridViewColumn
Я использую ListView
с GridView
. Есть ли GridViewColumn
событие resize?
4 ответов
посмотреть MSDN DridViewColumn детали. это не appaer, чтобы иметь такое событие, вероятно, требуется обходной путь, я не уверен, хотя. есть посмотреть здесь
надеюсь, что это помогает.
- Я займусь событие. The PropertyChanged
событие не отображается в Visual Studio intellisense, но вы можете обмануть его:)
GridViewColumn column = ...
((System.ComponentModel.INotifyPropertyChanged)column).PropertyChanged += (sender, e) =>
{
if (e.PropertyName == "ActualWidth")
{
//do something here...
}
};
хотя GridViewColumn
Не есть Resize
событие, вы можете привязать к ColumnWidth
собственность.
вы можете проверить это с помощью примера XAML ниже - нет кода, необходимого для этого примера. Он связывается только в одном направлении, от ширины столбца до текстового поля, и при изменении размера вы увидите, что текстовое поле немедленно обновляется с шириной столбца.
(Это просто простой пример; если вы хотите подобрать размер в коде, я бы создал класс с Width
свойство so binding будет работать в обоих направлениях).
<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>
private void ListView_Loaded( object sender, RoutedEventArgs e )
{
// Add the handler to know when resizing a column is done
((ListView)sender).AddHandler( Thumb.DragCompletedEvent, new DragCompletedEventHandler( ListViewHeader_DragCompleted ), true );
}
private void ListViewHeader_DragCompleted( object sender, System.Windows.Controls.Primitives.DragCompletedEventArgs e )
{
ListView lv = sender as ListView;
... code handing the resize goes here ...
}
XAML:
<ListView Loaded="ListView_Loaded">