J'ai la pièce de code suivanteaccéder à l'index de ItemsControl actuel via une liaison
<ItemsControl x:Name="ItemsControl" ItemsSource="{Binding Offers}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical"></StackPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<wpf:Card Padding="32" Margin="5" d:DataContext="{d:DesignData }">
<StackPanel Margin="0,0,0,-30" Height="107">
<TextBlock
Style="{DynamicResource MaterialDesignTitleTextBlock}">
<Run Text="Offer " />
</TextBlock>
<TextBlock Text="{Binding CarDescription}" />
<Separator Height="1" Visibility="Hidden" />
<Button Content="Select"
Width="72"
VerticalAlignment="Bottom"
HorizontalAlignment="Right"
Margin="0,20,0,0"
Command="{Binding SelectOfferCommand}"/>
</StackPanel>
</wpf:Card>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Cela produit un tas de boîtes répétées, tout a un bouton. Chaque fois que je clique sur le bouton, je veux accéder à l'index actuel de la boîte (à partir ItemsSource ItemsControl) et le passer comme un paramètre de commande. Est-il possible de le faire?
Pourquoi? Vous pouvez transmettre l'élément réel auquel l'objet itemTemplate est lié. – XAMlMAX
Ne nommez pas l'objet visuel comme son type. Vous devriez changer le nom de votre ItemsControl à un autre nom par exemple: "ItemsControlOffers". –
@ UçanKartal Pour quelle raison? "ItemsControl" est un nom parfaitement valide ici. – Clemens