J'ai essayé d'avoir un ContextMenu
dynamique pour montrer la propriété de nom de chacun de l'objet dans son collection of objects
.
voici un exemple concret, je me connecte à un webservice
pour tirer contacts
et groups
d'un compte particulier. J'ai donc ceux comme global variables
. i display the contacts in a listbox
et i want to show on right click of a contact in the listbox the list of groups that it can be added to
.
pour pouvoir ajouter un contact à un groupe j'ai besoin de l'identifiant du contact (que j'ai) et l'id du groupe que je cherche ici est mon code.comment passer des données en utilisant MenuItem.ItemContainerStyle
xmlns:serviceAdmin="clr-namespace:MyWpfApp.serviceAdmin"
......
<ListBox.ContextMenu>
<ContextMenu>
<MenuItem Header="Refresh" Click="RefreshContact_Click"></MenuItem>
<MenuItem Header="Add New Contact" Click="ContactNew_Click"></MenuItem>
<MenuItem Header="Add to Group" Name="groupMenus">
//<!--<MenuItem.Resources>
// <DataTemplate DataType="{x:Type serviceAdmin:groupInfo}" x:Key="groupMenuKey" >
// <MenuItem>
// <TextBlock Text="{Binding name}" />
// </MenuItem>
// </DataTemplate>
// </MenuItem.Resources>-->
<MenuItem.ItemContainerStyle>
<Style>
<Setter Property="MenuItem.Header" Value="{Binding name}"/>
<Setter Property="MenuItem.Tag" Value="{Binding id}" />
</Style>
</MenuItem.ItemContainerStyle>
</MenuItem>
<MenuItem Header="Delete Selected" Click="ContactDelete_Click"></MenuItem>
</ContextMenu>
</ListBox.ContextMenu>
......
et xaml.cs
//this code is in the method that loads the groups
loadedgroup = service.getGroups(session.key, null);
groupListBox.ItemsSource = loadedgroup;
groupMenus.ItemsSource = loadedgroup.ToList();
ce code est indiquant le nom des groupes bien, mais je besoin de l'ID du groupe cliqué.
Si vous avez remarqué j'ai commenté une partie du code xaml. avec ce que je pouvais bind (avec facilité) l'identifiant du tag.But il ne fonctionnera pas et le MenuItem.ItemContainerStyle est celui qui travaille mais je suis perdu:
Question 1: comment puis-je créer une méthode gestionnaire pour un événement de clic d'un sous-menu qui a les noms des groupes?
Question 2: comment puis-je obtenir l'identifiant de groupe sur lequel je clique?
merci pour la lecture et de bien vouloir me aider dans cette
qui fonctionne grâce –