Accedi a DataContext in code-behind
-
03-07-2019 - |
Domanda
Attenzione, questa è una domanda piuttosto semplice (credo).
Ho un UserControl, chiamato MyUserControl. Lo uso in un DataTemplate per il mio ListBox:
<l:MyUserControl DataContext="Test" />
Ora voglio accedere a questo DataContext nel code-behind di MyUserControl e mi aspetto che DataContext contenga un oggetto stringa con contenuto "Test". Tuttavia, DataContext è nullo. Cosa mi sto perdendo qui?
Soluzione
Se si desidera accedere alla proprietà DataContext nel codice sottostante, assegnare un nome al controllo utente (o qualsiasi controllo del caso):
nel codice dietro:
myControl.DataContext = someobject;
Anche se nel tuo esempio imposta DataContext su " Test " non realizzerà nulla.
Leggi sull'associazione dei dati in WPF http://msdn.microsoft.com/en-us/library/aa480224. aspx
Altri suggerimenti
È necessario un campo o una proprietà nella classe MyUserControl denominata DataContext.
Vedi qui per conoscere l'utente controlla le proprietà in .net.