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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top