Dans une liste contenant des Boutons, comment faire pour obtenir l'Indice de l'cliqué?
J'ai un ListView
ne contenant que des boutons. Ce que je veux faire est assez simple, je veux avoir l'index du bouton qui a été cliqué. Le comte de la liste varie de 0 à 100, de sorte que lorsque l'utilisateur clique sur le bouton 6, j'ai besoin de ce numéro pour le traitement.
J'ai défini mon ListView
comme ceci:
<ListView Name="myListView"
ItemsSource="{Binding Source={StaticResource myDataModel},
Path=StatusList,
Mode=OneWay}">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<Button Mode=OneWay}"
Click="Button_Click"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Mon idée de départ était de créer un bouton personnalisé avec un ID et lier de l'index pour l'ID, mais je ne peux pas comprendre comment le faire.
J'ai essayé:
int a = myListView.Items.IndexOf(((Button)sender));
dans le gestionnaire d'événement, mais il renvoie toujours la valeur 0xffffffff
quelqu'un peut-il me dire comment faire pour obtenir l'index de l'cliqué bouton?
pourquoi vous avez besoin de l'index de l'cliqué bouton? j'espère que vous ne prennent pas de l'indice de chercher la dataitem??
J'ai besoin de l'index du bouton parce que je dois exécuter une requête pour obtenir le résultat approprié d'un appareil connecté au serveur, et que l'appareil a le même nombre que les boutons de l'indice de
J'ai besoin de l'index du bouton parce que je dois exécuter une requête pour obtenir le résultat approprié d'un appareil connecté au serveur, et que l'appareil a le même nombre que les boutons de l'indice de
OriginalL'auteur peer | 2011-12-05
Vous devez vous connecter pour publier un commentaire.
Cela devrait fonctionner:
Échanger vos ListView avec un ItemsControl et définir une AlternationCount à un nombre très élevé (plus élevé que le compte maximum d'éléments dans votre liste).
Faire une commande et passer le courant de l'index en tant que paramètre.
XAML:
Code Derrière:
Je fixe moi-même Background="{Converter={StaticResource StatusConverter}}"
Content d'avoir pu vous aider ... Si vous avez des problèmes avec des liaisons dans l'avenir, avoir un coup d'oeil dans la fenêtre de sortie. Les erreurs doivent être répertoriés.
OriginalL'auteur SvenG
Utiliser le DataContext de trouver l'élément:
Cela fonctionne avec les DataTemplates dans les listes comme votre exemple, pouvez-vous me montrer ton code? Peut-être que le DataContext de la propriété de que le bouton est réglé différemment. Si elle renvoie la valeur 0, cela signifie qu'il pense que vous avez cliqué sur le premier élément.
eh bien, sauf pour le sourrounding <Grid><DockPanel> il n'y a plus de code. J'ai essayé le Bouton 4 et 10, rien n'a changé.
Excellent exemple de la Bas. J'ai été à essayer de comprendre comment cliquer sur une image sur un listviewitem et ont le gestionnaire de savoir quel élément il a été, et cela a fait le tour. Dim élément MyItem = CType(expéditeur, FrameworkElement).DataContext ... merci!!!!
Il a travaillé sans aucune modification de mon code. Grâce Bas!!!
OriginalL'auteur Bas