2010-03-24 14 views
5

Sto sviluppando un'applicazione WPF utilizzando MVVM. La maggior parte delle mie visualizzazioni ha solo markup xaml e niente (tranne il defaultplate boilerplate) sul codice sottostante.Adorner interrompe MVVM?

Tutti eccetto una vista che uso gli adornatori per "annerire" lo schermo con quando voglio disabilitare l'intero schermo.

private void Window_Loaded(object sender, RoutedEventArgs e) 
    { 
     //todo: transfer to modelview 
     contentAreaAdorner = AdornerLayer.GetAdornerLayer(contentArea); 
     waitingAdorner = new WaitingAdorner(contentArea); 
    } 

Va bene? O c'è un modo migliore per implementarlo nel mio viewmodel?

risposta

17

Ridurre code-behind è un vantaggio di MVVM, non il obiettivo.

Lo scopo di MVVM è rendere la logica dell'interfaccia utente più semplice e più verificabile. Il tuo codice sarebbe più semplice e più verificabile se spostassi questo metodo sul tuo modello di visualizzazione? Molto probabilmente no; infatti potrebbe essere meno così. Quindi non ti preoccupare.

+0

Esattamente quello che pensavo, ma essendo nuovo a MVVM volevo alcune opinioni prima. Grazie! –

+1

D'accordo, qualsiasi approccio "purista" a qualsiasi schema porterà in realtà a una maggiore complessità e più difficile comprensione e manutenzione del codice. – TheZenker

+0

Dovrebbe essere letta "logica dell'applicazione" anziché "logica UI"? Potrebbe essere fonte di confusione per i lettori che non conoscono immediatamente il modello. – Gusdor