2010-03-24 5 views
5

Je développe une application WPF en utilisant MVVM. La plupart de mes vues ont seulement le balisage de xaml et rien (sauf le passe-partout par défaut) sur le code derrière. Tous sauf une vue que j'utilise des ornements pour "noircir" l'écran avec quand je veux désactiver l'écran entier.Adorner brise-t-il MVVM?

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

Est-ce correct? Ou y a-t-il une meilleure façon de l'implémenter dans mon modèle?

Répondre

17

La réduction du code-behind est un avantage de MVVM, pas le objectif.

Le but de MVVM est de rendre la logique de l'interface utilisateur plus simple et plus testable. Votre code serait-il plus simple et plus testable si vous déplaciez cette méthode dans votre modèle de vue? Très probablement pas; en fait, cela pourrait l'être moins. Alors ne t'en fais pas pour ça.

+0

Exactement ce que je pensais, mais étant nouveau à MVVM je voulais d'abord des opinions. Merci! –

+1

D'accord, toute approche "puriste" de n'importe quel modèle conduira effectivement à plus de complexité et plus difficile à comprendre et à maintenir le code. – TheZenker

+0

Est-ce que cela devrait indiquer «logique de l'application» au lieu de «logique de l'interface utilisateur»? Cela peut être déroutant pour les lecteurs qui ne sont pas immédiatement familiers avec le modèle. – Gusdor