Je crée un UserControl pour un TreeView riche (avec des menus contextuels pour renommer des nœuds, ajouter des nœuds enfants, etc.). Je veux être en mesure d'utiliser ce contrôle pour gérer ou naviguer dans les structures de données hiérarchiques que je vais créer. J'ai actuellement il travaille pour une structure de données qui implémente l'interface suivante (cependant, n'a pas besoin d'être effectivement mis en œuvre l'interface, seule la présence de ces membres est nécessaire):Liaisons de variables dans WPF
interface ITreeItem
{
string Header { get; set; }
IEnumerable Children { get; }
}
Puis dans mon UserControl, j'utiliser des modèles pour lier mon arbre à la structure de données, comme suit:
<TextBlock x:Name="HeaderTextBlock" Text="{Binding Path=Header}" />
ce que je voudrais faire est de définir le nom de chacun de ces membres dans mon RichTreeView, ce qui lui permet de s'adapter à une gamme de structures de données différentes, comme suit:
class MyItem
{
string Name { get; set; }
ObservableCollection<MyItem> Items;
}
<uc:RichTreeView ItemSource={Binding Source={StaticResource MyItemsProvider}}
HeaderProperty="Name" ChildrenProperty="Items" />
Existe-t-il un moyen d'exposer le chemin d'une liaison à l'intérieur d'un UserControl en tant que propriété publique de ce UserControl? Y a-t-il un autre moyen de résoudre ce problème?