Kombinieren von .NET RIA Services und MVVM in Silverlight 3.0

8

Wenn Sie .NET RIA Services und MVVM in Silverlight 3.0 verwenden, besteht ein Unterschied zwischen dem Metadatentyp von RIA Services und dem ViewModel aus dem MVVM-Muster? Sind das die gleichen Dinge oder sollten sie getrennt bleiben?

Der Metadatentyp ist eine versiegelte interne Klasse für die partielle Entity-Klasse. Es scheint dort keine korrekte Trennung zu geben, aber der Metadatentyp kann auch mit Attributen für die Validierung versehen werden, wodurch er wie ein ViewModel aussieht.

Ich habe herumgesucht, aber ich habe nichts gesehen, was darüber spricht.

    
Robert Kozak 13.04.2009, 16:32
quelle

2 Antworten

11

Stimmen Sie mit ChuckJ überein - im Allgemeinen ist der DomainContext Teil eines View-Modells. Angenommen, ich hätte eine Suchseite, auf der nach einem Produktkatalog gesucht werden kann. So würde ich die Dinge strukturieren:

Auf dem Server:

%Vor%

Der generierte DomainContext:

%Vor%

Das Ansichtsmodell würde ich schreiben:

%Vor%

Und dann schließlich in meinem XAML, würde ich den DataContext meines Benutzersteuerelements als eine Instanz von SearchViewModel festlegen und ein ItemsControl an die Results -Eigenschaft binden. Ich würde das ViewModel-Muster Ihrer Wahl verwenden, um einen Button-Klick an Search zu binden (was effektiv ein Befehl ist, den SearchViewModel verfügbar macht). Ich persönlich mag etwas, das ich mit Silverlight.FX wie in:

arbeite %Vor%

und wie anfangs gezeigt hier .

Wie Chuck erwähnt, könnte ich tatsächlich einen anderen Zustand in meinem Ansichtsmodell haben, zum Beispiel das SelectedProduct, das an das SelectedItem einer ListBox in meinem xaml bidirektional gebunden sein kann, und dann dasselbe SelectedProduct wie den DataContext von a binden DataForm, um Details eines ausgewählten Produkts anzuzeigen.

Hoffe das hilft! Ich werde bald darüber auf meinem Blog bloggen.

    
Nikhil Kothari 18.04.2009, 20:33
quelle
1

Der Datenkontext der RIA-Services wurde entwickelt, um die Rolle eines ViewModel im MVVM-Muster zu spielen, da sie die Datenbindung nativ unterstützen, aber diesen Begriff nicht in ihrer Dokumentation verwenden. Es kommt jedoch darauf an. Wahrscheinlich benötigen Sie in Ihrem Ansichtsmodell den Status, den der RIA-Datenkontext bietet, z. B. Befehle und andere Ansichten. Ich denke, was Sie tun möchten, ist die Verwendung der Datenkontexte aus den RIA-Diensten als Teil des Ansichtsmodells.

    
chuckj 15.04.2009 19:13
quelle