Acesso DataContext em code-behind
-
03-07-2019 - |
Pergunta
Tenha cuidado, esta é uma questão bastante básica (eu acho).
Eu tenho um UserControl, chamado MyUserControl. Eu usá-lo em um DataTemplate para o meu ListBox:
<l:MyUserControl DataContext="Test" />
Agora eu quero acessar este DataContext no código-behind de MyUserControl, e eu espero DataContext para conter um objeto string com o conteúdo "Test". No entanto, DataContext é nulo. O que estou ausente aqui?
Solução
Se você quiser acessar a propriedade DataContext no código por trás, dar ao usuário controle (ou quaisquer controles para que o assunto) um nome:
no código por trás:
myControl.DataContext = SomeObject;
Embora em sua definição do DataContext para "Teste" vai conseguir nada exemplo.
Leia-se sobre a ligação de dados no WPF http://msdn.microsoft.com/en-us/library/aa480224. aspx
Outras dicas
Você precisa de algum campo ou propertie na classe de MyUserControl chamado DataContext.
Consulte aqui para aprender sobre o usuário propriedades de controle de NET.