2009-06-02 7 views
1

Je lie une liste d'éléments à un ListBox, j'ai besoin d'aide avec XAML pour pouvoir afficher un bouton pour chaque élément. Je peux très bien afficher un bouton, mais le bouton prend la longueur du texte du contenu. Je veux que mon bouton consomme 100% de la largeur de ListBox. J'ai également besoin d'arrêter la mise en évidence de ligne pour le ListBox, comme le bouton devrait le faire lui-même.WPF ListBox avec seulement Button pour ItemTemplate

J'utilise un bouton plutôt que de dessiner des rectangles car je veux utiliser des commandes pour un événement de clic sur le bouton.

<ListBox x:Name="MenuListBox" 
     ItemsSource="{Binding Path=MenuItemList}" 
     ScrollViewer.VerticalScrollBarVisibility="Visible"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <Grid VerticalAlignment="Top" HorizontalAlignment="Stretch" Margin="1"> 
       <Button Content="{Binding Path=Name}" 
         Height="30" 
         FontSize="12" 
         FontWeight="Bold" 
         HorizontalAlignment="Stretch" 
         Command="{Binding Path=DataContext.GetChildrenCommand, Source={StaticResource spy}}" 
         CommandParameter="{Binding}"/> 
      </Grid> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 
+0

La légende de la ListBox a fonctionné: HorizontalContentAlignment = "Stretch" –

Répondre

1

juste travaillé dehors, la définition ListBox exige:

**HorizontalContentAlignment="Stretch"** 
2

Retirez les propriétés VerticalAlignment et HorizontalAlignment de la grille, et est peut-être ListBox pas le contrôle dont vous avez besoin .. Essayez ItemsControl à la place si Vous ne disposerez pas des éléments de sélection de Listbox.