Bonjour à tous,
Je re-débute avec ce bon vieux modèle MVVM que j'avais pas utilisé depuis quelques années, et j'ai oublié pas mal de choses malheureusement
J'ai sur ma MainPage un Treeview dont la propriété ItemSource est bindé à une propriété du ViewModel correspondant.
Cette propriété retourne une collection de string pour remplir le TreeView.
Aucun problème jusqu'ici...
Par contre j'aimerais ajouter un évènement "MouseLeftButtonDownEvent" sur chaque TreeViewItem une fois le TreeView rempli. Et mon problème est que je ne sais ni où le faire, ni comment le faire
Premièrement, j'ai essayé dans le code behind de la vue, dans l'évènement treeview_loaded mais je n'arrive pas à récupérer de TreeViewItem, que des string :
Donc je me suis dis que plutôt que de renvoyer une collection de string pour ma propriété du ViewModel, je vais renvoyer une collection de TreeViewItem, mais le souci viens du AddHandler, il faut créer le MouseButtonEventHandler avec un nom de fonction qui sera dans le ViewModel. Le souci c'est que cette fonction doit modifier la vue, et le principe est que le ViewModel n'accède pas directement à la vue, bref je suis un peu perdu...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 private void trvwObjetsMG_Loaded(object sender, RoutedEventArgs e) { //Ajout des évènements pour le drag'n drop foreach (var item in trvwObjetsMG.Items) { var tvItem = (TreeViewItem)item; //Génère une exception tvItem.AddHandler(MouseLeftButtonDownEvent, new MouseButtonEventHandler(TreeViewItem_MouseLeftButtonDown), true); } }
Merci pour vos lumières
Partager