none
DataContext em UserControl para MVVM RRS feed

  • Pergunta

  • Boa tarde pessoal do Fórum.

    Estou com uma dúvida relacionada a ligação de dados em um APP que estou desenvolvendo. Vamos ao o que eu tenho:

    1. Possuo uma ViewModelLocator, aonde registro todas minhas ViewModells.
    2. Possuo uma MainViewModel e na minha MainPage faço o seguinte no xaml:

    DataContext={Binding MainViewModel, Source={StaticResource Locator}}

    Onde Locator é minha ViewModelLocator. Até ai tudo OK, sempre utilizei assim.

    Porém, na minha MainPage, eu possuo alguns UserControls, para reduzir o xaml na página principal. Ai surge a minha duvida?

    Para efetuar a ligação de dados também na minha MainViewModel, mas agora nesse UserControl criado eu também devo passar no dataContext:

    DataContext={Binding MainViewModel, Source={StaticResource Locator}}

    Lembrando que no meu UserControl, que apenas fazer a ligação em uma propriedade simples, que faz parte de MainViewModel

    OBS: Usando a proposta indica acima da certinho! Mas gostaria saber se é a forma correta ou não?

    Att.

    Weber

    quarta-feira, 1 de agosto de 2012 17:30

Todas as Respostas

  • Weber, em vez de fazeres isso directamente no UserControl, eu diria que o fizesses na View, onde estás a usar o UserControl!

    Assim, bastaria colocares:

    <!-- código da página -->
    
    <oMeuUserControl DataContext="{Binding}" />
    
    <!-- código da página -->


    Pedro Lamas
    DevScope | Senior Software Development Engineer & WP7 Development Speaker
    www.pedrolamas.com | @pedrolamas

    quarta-feira, 1 de agosto de 2012 18:17
  • Boa noite Pedro.

    Ok, entendi. Apesar que acho que dá na mesma tanto pelo XAML quando pelo code-behide.
    Mas a minha duívida é:

    Se meu UserControl é filho de minha View "MainPage.xaml" e eu passei o DataContext para esta "MainPage.xaml" como posso acessá-lo pelo user control? Mas apenas uma propriedade dentro da minha ViewModel passada para a View.

    quinta-feira, 2 de agosto de 2012 05:07
  • Perdi-me um pouco na tua questão... é possível colocares algum código para melhor se perceber?

    Pedro Lamas
    DevScope | Senior Software Development Engineer & WP7 Development Speaker
    www.pedrolamas.com | @pedrolamas

    quinta-feira, 2 de agosto de 2012 14:57