WPF ListView avec des boutons sur chaque ligne
J'ai une liste de Games
qui a juste un ID
, un Date
, et un Time
.
Je suis la définition de cette liste que le DataContext
.
J'ai alors d'un DataTemplate
pour ces jeux qui est:
<DataTemplate DataType="{x:Type loc:Game}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"></ColumnDefinition>
<ColumnDefinition Width="100"></ColumnDefinition>
<ColumnDefinition Width="100"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Name="dateBlock" Grid.Column="0" Grid.Row="1"
Text="{Binding Date, StringFormat=d}"></TextBlock>
<TextBlock Name="TimeBlock" Grid.Column="1" Grid.Row="1"
Text="{Binding Time}"></TextBlock>
//need to but a button here for each row
</Grid>
</DataTemplate>
Pour utiliser le modèle, je suis tout simplement il suffit de faire ceci:
<ListBox ItemsSource="{Binding}"></ListBox>
J'ai besoin d'ajouter un Button
à chaque ligne dans cet affichage de la liste qui ont le même événement de clic, mais en quelque sorte passer l'ID du jeu dont le bouton est cliqué.
Comment puis-je faire cela? Je suis coincé.
Si ça n'a pas de sens, laissez-moi savoir et je vais essayer d'expliquer mieux.
InformationsquelleAutor twaldron | 2011-08-19
Vous devez vous connecter pour publier un commentaire.
Pour la première partie, ajouter un
Button
à laDataTemplate
et abonnez-vous à laClick
événementDans le code de gestionnaire d'événement, vous pouvez obtenir le
DataContext
de l'cliquéButton
et trouver l'Id commeFacilement. Ajouter un
Button
à votre DataTemplate, de lui donner unCommand
et puis définissez laCommandParameter="{Binding}"
. Le DataContext dans un DataTemplate est l'objet.Comme demandé, voici quelques liens à l'aide de commandes.
HTH,
Avec une zone de liste.ItemTemplate. Alors cliquez sur l'événement que vous pouvez obtenir à l'objet par DataContext.