Sembra che altri abbiano avuto variazioni su questa domanda, ma da quello che posso dire non è stato indirizzato a persone che utilizzano le raccolte in un unico modello di visualizzazione.MVVM selezionando programmaticamente una voce treeview
Ho una VM che contiene una ObservableCollection di oggetti, non una VM per ogni oggetto. Quindi non penso di poter usare il booster SelectedItem che è spesso discusso perché non penso di poter legare alla proprietà sugli oggetti della collezione ... solo le proprietà sulla VM.
Quindi ho scritto tutto bene senza code-behind e accoppiamento minimo, ma quando un nuovo elemento viene aggiunto alla raccolta, che è associato a treeView, devo selezionare quell'elemento.
Idee?
Grazie!
Forse sì. Comunque ho preso una via di mezzo. Sono andato avanti e ho implementato INotifyPropertyChanged su ciascuno dei tipi di oggetto che ObservableCollection della VM tiene e schiaffa IsSelected e IsExpanded su di essi. Il lato negativo è che i miei oggetti ora hanno dentro di sé quel pasticcio (è davvero male?). Il lato positivo è che non ho dovuto creare quel livello aggiuntivo di VM che non mi ha fornito nulla oltre un luogo in cui tenere l'oggetto sottostante e quelle due proprietà. – Bob
Se è tutto ciò di cui hai bisogno, puoi anche farlo in quel modo. – Erin