2009-09-10 9 views
2

J'ai un ListView qui utilise un GridView pour afficher une DataTable et lorsque de nouvelles lignes sont ajoutées au DataTable l'ListView grandit comme prévu, mais quand il atteint le fond de l'Canvas il porte sur croissance.WPF ListView pousse plus grand que cela contient Canvas

Je veux qu'il s'arrête quand il atteint la hauteur du Canvas, comment puis-je configurer cela?

Le Canvas a une hauteur dynamique qui est contrôlée par le DockPanel il est contenu.

<Canvas> 
    <ListView Name="listResults" ItemsSource="{Binding}"> 
     <ListView.View> 
      <GridView> 
       <GridViewColumn Header="Request Time" DisplayMemberBinding="{Binding RequestTime}" /> 
       <GridViewColumn Header="Request Duration(ms)" DisplayMemberBinding="{Binding Duration}" /> 
       <GridViewColumn Header="Request Duration(ms)" DisplayMemberBinding="{Binding Duration}" /> 
      </GridView>        
     </ListView.View> 
    </ListView> 
</Canvas> 

Répondre

6

Définissez la propriété MaxHeight sur votre ListView. Vous pouvez le coder en dur, ou vous pouvez le lier à la propriété ActualHeight du Canvas.

+0

@muaddib En fait, Liaison 'MaxHeight' avec le contrôle parent 'ActualHeight' fonctionne très bien avec Canvas, mais pas avec DockPanel. Des suggestions utilisant DockPanel en tant que parent? – Gabrielius

+0

Juste vérifié, ce n'est pas un problème avec DockPanel, mais quelque chose d'autre, je ne peux pas coller un code court avec un exemple non-travail, malheureusement. – Gabrielius