Come dare attenzione e selezionare il testo in una TextBox da ViewModel
Domanda
sto sperimentando con MVVM nel contesto di una semplice WPF app. Ho un comando associato a un pulsante. Se il testo in un controllo TextBox è 'corretta', voglio che il TextBox per ottenere messa a fuoco e tutti i suoi contenuti selezionati. Sembra che l'unico modo per farlo è o attraverso una sorta di chiamata diretta dal Comando nel mio ViewModel alla vista, o messa a punto una sorta di evento che i fuochi ViewModel e la vista in ascolto per. Da lì la vista può effettuare chiamate dirette sul TextBox in questione.
Sto cercando di rimanere all'interno della natura disaccoppiato di MVVM, ma sembra che non c'è modo che posso ottenere questo comportamento dichiarativo in XAML, o in codice direttamente nel ViewModel senza almeno indirettamente, a parlare con la vista (un interfaccia o eventing). Mi piacerebbe anche dovuto tenere un riferimento alla vista nel ViewModel.
Quale potrebbe essere considerato un 'best practice' qui, e in che modo disaccoppiato sono viste davvero dovrebbe essere da ViewModels a 'reali' applicazioni MVVM?
Soluzione
E 'il codice che è direttamente legata ai controlli della vostra interfaccia utente, quindi penso che in questo caso della vista code-behind è dove essa appartiene. Si potrebbe desiderare di impostare un evento o qualcosa del genere. In questo modo è ancora come disaccoppiati come prima -. La vista conosce del ViewModel in ogni caso, è solo per un paio di righe di codice nel code-behind
Altri suggerimenti
ho incontrato lo stesso problema, quello che ho fatto è fatto una casella di testo ed esporre proprietà di dipendenza da questo controllo.
come messa a fuoco, selectalltext e si legano queste proprietà per visualizzare il modello.