Bonjour,
Je tente de personnaliser une TreeView afin d'afficher des Map et des Epaisseur
une Map pouvant contenir plusieurs Epaisseur
Nous avons donc au maximum 2 niveau.
Pour alleger le code source WPF j'ai mis en place un Dictionnaire de Ressource pour mes Styles et Template
une partie du Dictionnaire de Ressource
winPrincipal contient une TreeView qui possede des Items beneficiant du HierarchicalDataTemplate ci-dessus. Ce Template ajoute un menu contextuel et maintenant j'aimerais ajouter la fonction correspondant au Click des elements du menu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <ResourceDictionary x:Class="MedievalWars_Mapping.dictionaryStyle" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:cc="clr-namespace:MedievalWars_Mapping" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <!-- DataTemplate d'un Element Map --> <HierarchicalDataTemplate x:Key="dtMap" ItemsSource="{Binding SubItems}"> <TextBlock Foreground="Black" Text="{Binding Identifiant}"> <TextBlock.ContextMenu> <ContextMenu Name="ctmMap"> <MenuItem Header="Ajouter Epaisseur" Click="MenuItem_AjouterEpaisseur_Click" /> <Separator /> <MenuItem Header="Parametrer"/> <MenuItem Header="Supprimer" /> </ContextMenu> </TextBlock.ContextMenu> </TextBlock> </HierarchicalDataTemplate> </ResourceDictionary>
le 1er solution me venant a l'esprit et d'ajouter
avec a la place de MessageBox(c'était pour des test) le declanchement de la fonction adequat dans winPrincipal avec tout ce que cela implique(gestion de l'instance de winPrincipal.....)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public partial class dictionaryStyle { public void MenuItem_AjouterEpaisseur_Click(object sender, RoutedEventArgs e) { MessageBox.Show("test ajout epaisseur in ds class : OK!!"); } }
ma question est donc, n'y a t-il pas un moyen plus simple de mettre en relation mon Dictionnaire de Ressource et ma Fenetre???
EDIT: il faudrais ausi que je puisse acceder a mes MenuItem pour leur assigner une Icon en C#, je recupere l'icon depuis une fonction d'une librairie
merci
Partager