MVVM ist in. NET 4.5 mit Modellbindung und der Verwendung von gebundenen Steuerelementen mit Vorlagen wie FormView möglich.
Hier ist die Technik, die ich benutze:
Ich entwerfe ViewModels für jedes UserControl und jedes verschachtelte UserControl und verwende dann eine FormView, die sich immer im EditMode befindet, wobei ich die Steuerelemente einbinde, die mithilfe von Bindungsausdrücken an Modelleigenschaften gebunden werden.
Ich habe die SelectMethod und UpdateMethod der FormView festgelegt. Das erste gibt das ViewModel zurück und das zweite ruft TryUpdate () auf. Bei Postbacks rufe ich die Update-Methode von FormView immer in Preload oder Load auf. Auf diese Weise ist das ViewModel in der Ansicht immer auf dem neuesten Stand.
Ich führe die Logik im ViewModel aus und binde in PreRender die Ansicht neu, um alle Änderungen zu übernehmen. Der Schlüssel bei dieser Methode besteht darin, das ViewModel in die Ansicht (UserControl) außerhalb der Ansicht (z. B. auf Seitenebene) einzufügen und natürlich sicherzustellen, dass es in ViewState oder an einem anderen von mir ausgewählten Ort serialisierbar und zwischengespeichert ist.
Schließlich deaktiviere ich den ViewState in allen Steuerelementen, da sie letztendlich vom zwischengespeicherten Stateful ViewModel "gesteuert" werden und keinen eigenen Status benötigen.
Diese Technik hat mich bisher nie enttäuscht und ich wünschte nur, ich könnte auch eine Lösung für die Befehls- / Tastenbindung finden, wie WPF.