2010-06-18 5 views
0

J'ai un listview et j'ai besoin d'avoir la largeur de la première colonne automatique (donc la largeur est correctement mesurée) et la deuxième colonne qui prendra le reste de l'espace dans la tête de listview.Comment définir les largeurs de colonnes dans ListView dans WPF?

Comment puis-je faire cela?

Mon XAML ressemble à ce moment:

<ListView HorizontalAlignment="Stretch" ItemsSource="{Binding ListViewItemsSource}" 
       Margin="5,0,5,5" DockPanel.Dock="Top" ScrollViewer.HorizontalScrollBarVisibility="Disabled"> 
     <ListView.View> 
      <GridView> 
       <GridViewColumn Header="Plugin" DisplayMemberBinding="{Binding Plugin}" /> 
       <GridViewColumn Header="Message"> 
        <GridViewColumn.CellTemplate> 
         <DataTemplate x:Name="col1Template"> 
          <TextBlock TextWrapping="WrapWithOverflow" Text="{Binding Message}" /> 
         </DataTemplate> 
        </GridViewColumn.CellTemplate> 
       </GridViewColumn> 
      </GridView> 
     </ListView.View> 
    </ListView> 

Merci!

Répondre

1

Ce comportement n'est pas présent dans le ListView - si la largeur est laissée vide, il essayera de la dimensionner au mieux comme il peut initialement (souvent sans données => en fonction de l'en-tête). Si vous en avez vraiment besoin, vous pouvez essayer le DataGrid qui prend en charge la taille des colonnes.

+0

Merci! J'ai trouvé comment travailler avec DataGrid ici: http://www.switchonthecode.com/tutorials/using-the-wpf-toolkit-datagrid - notons pour d'autres personnes que si vous utilisez .NET 3.5sp1 alors vous avez utiliser WPF Toolkit (mais il est couvert dans l'article) –

Questions connexes