MISE À JOUR:
En avez-vous vraiment besoin? En regardant votre XAML, vous ne définissez pas DataContext dans votre ToggleButton, vous devriez donc hériter de sa valeur de n'importe quel parent qui définit sa valeur.
Voir: DataContext.
Cette propriété de dépendance hérite des valeurs de propriété. S'il existe des éléments enfants sans autres valeurs pour DataContext établies à l'aide de valeurs ou de styles locaux, le système de propriété attribue la valeur DataContext de l'élément parent le plus proche à cette valeur.
Quoi qu'il en soit, si vous en avez besoin ...
ORIGINAL: Toute réponse qui suppose une structure donnée dans votre XAML est erroné. Vous pouvez toujours appliquer un modèle qui modifie la structure. Cela dit, vous pouvez utiliser la classe VisualTreeHelper (méthode GetParent) pour naviguer dans l'arborescence visuelle. Et le premier paramètre, est une référence au contrôle qui a été vérifié.
Alors, du haut de ma tête, je suppose que vous pouvez faire ce qui suit:
DependencyObject source = sender as DependencyObject;
if(null != source) {
DependencyObject parent = VisualTreeHelper.GetParent(source);
FrameworkElement parentElement = parent as FrameworkElement;
if(null != parentElement) {
object context = parentElement.DataContext;
}
}
Vous devez en tenir cela dans une méthode d'assistance:
public static FrameworkElement GetParentContext(FrameworkElement element) {
object result = null;
DependencyObject parent = VisualTreeHelper.GetParent(element);
FrameworkElement parentElement = parent as FrameworkElement;
if(null != parentElement) {
result = parentElement.DataContext;
}
return result;
}
S'il vous plaît considérer que, étant donné que la La structure XAML peut être différente, peut-être aurez-vous besoin de remonter l'arbre jusqu'à ce que vous trouviez un élément avec DataContext
qui n'est pas null
.
Partagez la structure xaml si possible. – Versatile
N'oubliez pas de le marquer comme réponse s'il résout votre question. – Versatile