/ / sposta lo stato attivo della tastiera sul prossimo albero? - wpf, treeview

spostare lo stato attivo della tastiera sul prossimo albero? - wpf, treeview

Ho un'applicazione che utilizza treeview in wpfcon mvvm. Il modello treeitem contiene una casella di testo per l'utente per inserire o modificare i dati del campo. Mi piacerebbe che l'utente premesse la modifica in modalità tab per passare alla successiva casella di testo Treeitem visibile e consentire loro di iniziare a modificarla. È possibile? Posso prendere il tasto Tab ma non riesco a capire come passare all'elemento successivo

risposte:

0 per risposta № 1

Ok, non sono sicuro che sia il modo più pulito ma ho trovatoun modo per farlo e non sembra essere affetto da problemi di velocità quindi funziona per ora, sarebbe ancora interessato a una risposta più pulita se qualcuno ne ha uno. Ecco cosa ho fatto:

Ho usato un metodo simile a quello di riferimento Qui per ottenere una raccolta di tutte le caselle di testo inVisualizzazione ad albero. Ho quindi utilizzato "mittente" per l'evento KeyDown, lanciato in una casella di testo e ottenuto il datacontext di Microsoft, che è il mio modello di visualizzazione per quel nodo. Ho quindi utilizzato il mio viewmodel generale per trovare il modello di visualizzazione del prossimo nodo visibile (molto semplice con un legame bidirezionale a "IsExpanded"). Infine, ho ripetuto tutte le caselle di testo trovate all'inizio finché non ho trovato uno che era il datacontext era il prossimo modello di visualizzazione visibile e chiamato Keyboard.Focus (myTextBox) su di esso.

Come ho detto, sembra che ci dovrebbe essere un modo più pulito ma funziona per ora ...