Pergunta

Eu estou experimentando com MVVM no contexto de um aplicativo WPF simples. Eu tenho um comando ligado a um botão. Se o texto em uma caixa de texto é 'incorreta', eu quero a caixa de texto para obter o foco e todo o seu conteúdo selecionado. Parece que a única maneira de fazer isso é através de algum tipo de chamada direta do comando no meu ViewModel para a vista, ou configuração de algum tipo de evento que os fogos ViewModel ea vista escutas para. De lá, a vista pode fazer chamadas diretas na caixa de texto em questão.

Eu estou tentando ficar dentro da natureza dissociado de MVVM, mas parece que não há nenhuma maneira eu posso obter este comportamento declarativamente em XAML ou em código diretamente na ViewModel sem pelo menos falar indiretamente à vista (um interface ou CCE). Eu também teria que manter uma referência para o Ver no ViewModel.

O que seria considerado uma 'melhor prática' aqui, e como dissociado estão Visualizações realmente deveria ser de ViewModels em aplicativos MVVM 'reais'?

Foi útil?

Solução

É o código que está diretamente ligada aos controles de sua interface do usuário, então eu acho que neste caso code-behind da View é onde ele pertence. Você pode querer configurar um evento ou algo parecido. Dessa forma, ainda é tão dissociadas como antes -. A visão sabe do viewmodel de qualquer maneira, você só tem mais algumas linhas de código no código-behind

Outras dicas

i ter encontrado mesmo problema, o que eu fiz é feita uma caixa de texto personalizado e expor propriedade de dependência a partir deste controle.

Como foco, selectalltext e se ligam essas propriedades ao modelo de vista.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top