Quando si usa MVVM, va bene usare l'iniezione di proprietà su un modello di vista in WPF?

2

Sono piuttosto nuovo al concetto di MVVM nei progetti C # /. NET WPF. Per come la vedo io, il modello di vista dovrebbe ridurre la quantità di code-behind necessaria per visualizzare i dati su un modulo. Cerco di fare quanto più possibile della logica di interazione nel modello di visualizzazione, quindi tutti gli oggetti che utilizzerò verranno passati al modello di visualizzazione tramite l'iniezione di proprietà. Il modello di visualizzazione utilizzerà quindi quegli oggetti per fare ciò che l'applicazione dovrebbe fare.

L'unica logica che ho nella vista è di creare un'istanza di qualcosa in base alla selezione di un utente e passarla immediatamente nel modello di visualizzazione. Inoltre, ho solo bisogno di farlo con alcune cose che non hanno senso legare (tutto il resto usa l'associazione dati).

Quello che sto chiedendo è ... Va generalmente bene passare oggetti al modello della vista? Oppure, questo crea qualche tipo di accoppiamento o altri problemi di cui non sono a conoscenza?

    
posta Snoop 05.12.2016 - 12:54
fonte

1 risposta

1

Che tipo di oggetti vuoi passare a ViewModel?

La mia visione di MVVM è che i miei ViewModels sono la mia applicazione, e View è solo un'interfaccia piuttosto user-friendly per interagire con ViewModels. In un mondo ideale, dovresti essere in grado di collegare facilmente un'interfaccia della riga di comando al tuo ApplicationViewModel ed eseguire le stesse azioni.

Sembra che tu abbia la vista che crea un oggetto basato sull'oggetto selezionato di una vista e che sta tentando di passare l'oggetto creato a un ViewModel. Normalmente non è quello che vuoi.

Quello che dovresti avere è un ViewModel che contiene un oggetto SelectedItem (che è associato alla vista per dare all'utente un modo semplice per cambiarlo), e che ViewModel dovrebbe creare il tuo oggetto usando la proprietà ViewModel.SelectedItem . Da lì, può passarlo a un altro ViewModel, se necessario, o prendere qualche altra azione su di esso.

Ho un semplice esempio MVVM sul mio blog se sei interessato a capire il modello un po 'di più. È ciò che di solito do ai principianti di WPF su StackOverflow che cercano un esempio di base. :)

    
risposta data 08.12.2016 - 16:31
fonte

Leggi altre domande sui tag