2010-02-05 9 views

Respuesta

2

Echa un vistazo a MSDN DridViewColumn details. No parece tener tal evento, probablemente se requiera alguna solución, aunque no estoy seguro. tiene look here

Espero que ayude.

+0

______Thanks :) –

4

Aunque GridViewColumn no parece tener un evento Resize, puede enlazar a la propiedad ColumnWidth.

Puede verificar esto con la muestra XAML a continuación - no se necesita código para este ejemplo. Se vincula solo en una dirección, desde el ancho de la columna hasta el cuadro de texto, y cuando cambie el tamaño verá que el cuadro de texto se actualiza inmediatamente con el ancho de la columna.

(Este es solo un ejemplo simple, si desea recoger el tamaño en el código, crearía una clase con una propiedad Width para que el enlace funcione en ambas direcciones).

<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> 
25

En su lugar, manejaré el evento PropertyChanged. El evento PropertyChanged no se ve en el estudio IntelliSense Visual, pero se puede engañar a él :)

GridViewColumn column = ... 
((System.ComponentModel.INotifyPropertyChanged)column).PropertyChanged += (sender, e) => 
{ 
    if (e.PropertyName == "ActualWidth") 
    { 
     //do something here... 
    } 
}; 
+0

muy agradable (1). Consulte esto para una implementación de esta técnica en una propiedad adjunta: http://wpftoolbelt.codeplex.com/SourceControl/changeset/view/33225#457436. –

Cuestiones relacionadas