Je suis en train de créer un modèle pour un treeView dans WPF et C#. Mon problème est que je veux appliquer un modèle différent pour chaque niveau d'éléments. Je veux dire que le premier niveau d'objet sera différent des objets de second niveau. Je ne sais pas comment faire cela avec les gabarits et la reliure, car je suis nouveau dans la technologie. J'essaye également d'ajouter des boutons à un certain niveau treeviewItems ainsi je peux tirer des événements ou des commandes ... je sais que c'est beaucoup à demander, mais j'espère que quelqu'un me donnera une idée à ce sujet ou au moins si elle est possible ou non. Merci.Modèle personnalisé TreeView multiniveaux avec des boutons
Répondre
En supposant que tous les objets sont du même type, je peux voir deux méthodes pour y parvenir: utiliser les propriétés ItemTemplate ou ItemTemplateSelector.
Personnellement, je préfère l'approche XAML qui serait d'utiliser la propriété ItemTemplate.
Dans le modèle, vous devez spécifier des déclencheurs pour modifier l'apparence en fonction du niveau auquel l'élément est installé. Pour obtenir ce niveau, vous pouvez spécifier un convertisseur semblable à ceci:
public class TreeViewItemToLevelConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (!(value is DependencyObject))
return 0;
return findLevel(value as DependencyObject, -1);
}
private int findLevel(DependencyObject tvi, int level)
{
DependencyObject tv = ItemsControl.ItemsControlFromItemContainer(tvi) as DependencyObject;
if (tv != null)
return findLevel(tv, level + 1);
else
return level;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new Exception("The method or operation is not implemented.");
}
}
Mon vote ici. Je voudrais ajouter que vous devriez établir ce que vous entendez par «niveau». Est-ce le niveau visuel, ou un niveau logique? En tant que «niveau logique», je veux dire l'importance logique de l'élément affiché, ne correspondant pas nécessairement à la hiérarchie visuelle. Si c'est le cas, je suggère de fournir une propriété "Niveau" dédié dans votre modèle, au lieu de calculer un "gras" montré. Cependant, pour un visuel, l'extrait "gras" est correct. –
HierarchicalDataTemplate
a ItemTemplate
, aussi bien ... vous pouvez l'utiliser.
voir ce ...
http://blogs.msdn.com/b/chkoenig/archive/2008/05/24/hierarchical-databinding-in-wpf.aspx
- 1. TreeView avec des boutons
- 2. TreeView avec des cases à cocher et des boutons radio
- 3. WPF TreeView avec style personnalisé
- 4. Treeview hide [+] [-] boutons
- 5. EventListeners pour Listview personnalisé avec des boutons
- 6. adaptateur personnalisé avec des boutons mémoire
- 7. WPF: Personnalisé + - dans TreeView
- 8. boutons style d'extension de TreeView
- 9. modèle Django s'attribut personnalisé de demande ou « refresh » boutons radio
- 10. Plusieurs boutons en expansion pour WPF TreeView
- 11. Bases de données multiniveaux
- 12. ListView avec des boutons externes - Personnalisé ou Contrôle Utilisateur?
- 13. Routes MVC multiniveaux
- 14. C# ajoutant des boutons au contrôle personnalisé
- 15. MVVM avec TreeView - ajouter des noeuds
- 16. Créer TreeView avec des boutons qui se comportent comme l'arbre des objets de Blend
- 17. Guide pour glisser personnalisé déposer contrôle treeview (avec jQuery)
- 18. Listbox modèle personnalisé
- 19. TreeView PopulateOnDemand ne fonctionne pas avec un ImageURL personnalisé
- 20. classeur modèle personnalisé avec T4MVC
- 21. STL iterator avec modèle personnalisé
- 22. Puis-je ajouter des boutons avec des événements à un treeNode personnalisé?
- 23. Personnalisé Radio Div/Images/Boutons
- 24. Obtenir des informations de Treeview avec HierarchicalDataTemplate
- 25. Modèle TreeView personnalisé pour afficher les données hiérarchiques dans "un flux"
- 26. Comment implémenter des hiérarchies multiniveaux dans la gestion des utilisateurs
- 27. Contenu personnalisé réutilisable pour les boutons
- 28. Boutons de basculement WPF avec un modèle personnalisé n'acceptant pas de cliquer dans la zone correcte
- 29. Bind objet personnalisé à TreeView dans WPF
- 30. C#: comment utiliser un objet TreeView personnalisé?
@ Ziad: Cela est possible. Chaque TreeNode est un conteneur et vous pouvez y ajouter vos contrôles personnalisés. – CharithJ
c'est possible! [Cliquez ici!] (Http://www.google.ru/search?sourceid=chrome&ie=UTF-8&q=tree+view+wpf+codeproject) – stukselbax
Merci les gars. Tu m'as vraiment aidé. J'ai une meilleure compréhension maintenant !!! –