Question

Attention, c’est une question plutôt fondamentale (je pense).

J'ai un UserControl, appelé MyUserControl. Je l'utilise dans un DataTemplate pour mon ListBox:

<l:MyUserControl DataContext="Test" />

Je souhaite maintenant accéder à ce DataContext dans le code-behind de MyUserControl et je m'attends à ce que DataContext contienne un objet chaîne avec le contenu "Test". Cependant, DataContext est null. Qu'est-ce qui me manque ici?

Était-ce utile?

La solution

Si vous souhaitez accéder à la propriété DataContext dans le code derrière, attribuez un nom à la commande utilisateur (ou à une commande):

dans le code derrière:

myControl.DataContext = someobject;

Bien que dans votre exemple, définissez DataContext sur "Test". n'accomplira rien.

Lecture sur la liaison de données dans WPF http://msdn.microsoft.com/en-us/library/aa480224. aspx

Autres conseils

Vous avez besoin d'un champ ou d'une propriété dans la classe de MyUserControl nommée DataContext.

Voir ici pour en savoir plus sur l'utilisateur propriétés de contrôle dans .net.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top