Vous n'avez pas spécifié de source pour la liaison. Il utilise donc le DataContext local de l'élément tab
. Puisque l'élément tab
n'a pas encore de DataContext (c'est ce que vous essayez de définir), sans parler de celui pour lequel le chemin Content.DataContext
est significatif, cela ne fonctionnera pas.
Au lieu d'utiliser quelque chose comme: (. En fonction de votre exigence exacte que vous pouvez également enquêter sur l'utilisation Binding.Source au lieu de Binding.RelativeSource)
Binding binding = new Binding("Content.DataContext")
{
RelativeSource = RelativeSource.Self
};
BindingOperations.SetBinding(tab, DataContextProperty, binding);
Le paramètre RelativeSource spécifie que la liaison est à le même élément que la cible de liaison plutôt que le DataContext local - ainsi, le DataContext du contrôle est maintenant lié au DataContext du contenu de ce même contrôle, comme requis.
Avez-vous essayé de le faire de manière déclarative? (à travers xaml)? – Pierreten