2016-03-20 17 views
1

Ich habe das Web durchsucht und sind dabei auf direkte Erklärung auf diese einfache Frage nicht kommen ...Zugriff auf View-Mitglieder in ViewModel bei Verwendung von MVVM?

Ich habe eine UWP App arbeite ich an und ich muss einfach wissen, wie man zum Beispiel Greifen Sie auf ein Rasterelement oder ein Textblockelement zu, das sich im XAML der Ansicht befindet. Bei jedem Artikel, den ich finde, geht es ausschließlich um Datenbindung. Ich möchte keine Daten binden. Ich suche einfach nach den Elementen, die sich in meinem View befinden, damit ich sie manipulieren kann.

Ein Hauptproblem, das ich gefunden habe, ist eine MVVM-Methode zu finden, um eine RichEditBox beispielsweise in meinem ViewModel zu manipulieren. Dieses bestimmte Steuerelement kann nicht vollständig über XAML manipuliert werden und erfordert die Verwendung von Code.

Also ja, im Grunde, wie bekomme ich einen Verweis auf diese Objekte aus dem ViewModel?

+3

Sie müssen zuerst mehr über MVVM erfahren. Die Idee hinter MVVM besteht darin, die Ansicht (ui) vom Viewmodel (Präsentationslogik) zu trennen. Davon abgesehen ist einem ViewModel nichts bekannt, was in der Ansicht passiert. Die Antwort lautet also: Überhaupt nicht. Sie verfügen über Befehle und meldepflichtige Eigenschaften, mit denen Sie mit der Ansicht kommunizieren. Es gibt andere Tools, die Sie verwenden können, um es zu umgehen, wie angefügte Eigenschaften. Angehängte Eigenschaften können an ein Benutzersteuerelement in XAML angehängt werden, und Sie können Eigenschaften oder Befehle an sie binden. – Tseng

+1

Wenn Sie eine komplexe und generische Lösung haben, können Sie eine Benutzerkontrolle vornehmen. In Benutzersteuerelementen können Sie den Code dahinter verwenden, um die gesamte erforderliche Logik zu erstellen, und dann Abhängigkeitseigenschaften verfügbar machen, um Befehle und Eigenschaften an sie zu binden. Siehe meine Antworten auf ähnliche Fragen zu Benutzersteuerelementen und Code hinter http://stackoverflow.com/a/35983746/455493 und http://stackoverflow.com/a/35395128/455493 – Tseng

Antwort

5

Der springende Punkt von MVVM ist, die Ansicht und das Ansichtsmodell zu trennen.

Wenn Sie mit der Datenbindung aus dem Ansichtsmodell etwas nicht tun können, können Sie immer Code in den Code hinter dem Formular einfügen.

Verwandte Themen