2010-03-24 8 views
5

Ich entwickle eine WPF-App mit MVVM. Die meisten meiner Ansichten haben nur Xaml-Markup und nichts (außer Standard-Boilerplate) auf Code dahinter.Bricht Adorner MVVM?

Alle außer einer Ansicht, die ich Adorners verwenden, um den Bildschirm zu "schwärzen" mit, wenn ich den gesamten Bildschirm deaktivieren möchte.

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

Ist das in Ordnung? Oder gibt es eine bessere Möglichkeit, dies in meinem Viewmodel zu implementieren?

Antwort

17

Reduzierung der Code-Behind ist ein Nutzen von MVVM, nicht das Ziel.

Der Zweck von MVVM ist, UI-Logik einfacher und testbarer zu machen. Wäre Ihr Code einfacher und testbarer, wenn Sie diese Methode in Ihr Ansichtsmodell verschieben würden? Sehr wahrscheinlich nicht; in der Tat könnte es weniger sein. Also mach dir keine Sorgen.

+0

Genau das, was ich dachte, aber neu zu MVVM Ich wollte zuerst einige Meinungen. Vielen Dank! –

+1

Einverstanden, jede "puristische" Herangehensweise an irgendein Muster wird tatsächlich zu mehr Komplexität führen, und es ist schwieriger, Code zu verstehen und zu pflegen. – TheZenker

+0

Sollte dies "Anwendungslogik" statt "UI-Logik" lesen? Es könnte verwirrend sein, dass Leser das Muster nicht sofort kennen würden. – Gusdor