Sto cercando di imparare il pattern MVVM. Il problema principale che sto avendo è imparare dove dovrei dichiarare, creare e legare gli oggetti di comando.MVVM Command Binding
2 esempi:
Ho una forma principale che agisce come un pulsante o di menu principale. Viene visualizzato il pulsante 1 e la vista 1, viene visualizzato il pulsante 2 e viene visualizzata la vista 2. Grande. Ora voglio tornare al modulo principale, quindi ho bisogno di un pulsante su Vista 1 (e vista 2) chiamato "Menu principale". Dove dovrei definire il comando e i gestori di comandi in modo che possa eseguire il binding al comando "ShowMainMenu"? Potrei crearli in View2ViewModel ma poi non ho accesso per mostrare la vista principale? Oppure, potrei creare thim nel modello MainView, ma poi Come faccio a legarli a loro nel modello di vista figlio (sto usando il RelayCommand obejct come per la raccomandazione di mvvm e non danno bolle al genitore.)
Ho due controlli utente visibili su una singola finestra principale, chiamiamoli MainView, UC1 e UC2. ognuno di questi ha ViewModel MainViewModel, UC1ViewModel, UC2View Model. Ho un pulsante su UC1 chiamato "AddItem". Dovrebbe aggiungere un elemento in un elenco su UC2. Qual è il modo per impostare un "AddItemCommand" e collegarlo ad esso. Il comando deve essere in MainViewModel, Uc1ViewModel o UC2ViewModel? E come lo leggo ad esso.
Grazie per il vostro aiuto.
Nel primo exmaple si imposta ViewContent = new MainViewModel()); Si suppone che questo sia un Window/Usercontrol? O hai davvero impostato il contenuto attuale su un modello di vista? – thrag
È il modello di visualizzazione. Se si posiziona ContentPresenter nella propria vista e si associa la proprietà Content a ViewModel, verrà visualizzata come vista associata. Utilizzi l'associazione view-viewmodel in questo modo: DataTemplate> –
bniwredyc