___ tag123mvvm ___ Model-View-ViewModel (MVVM) ist ein Architekturentwurfsmuster zum Implementieren von Benutzeroberflächen, das die Benutzeroberfläche (die Ansicht) von ihren Daten (dem Modell) über ihre Präsentationslogik (ihr ViewModel) trennt. ___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ tag123windowsphone8 ___ Windows Phone 8 ist eine Version von Windows Phone (29. Oktober 2012 - heute), die Windows Phone 7.5 nachsteht und viele neue Funktionen enthält. Windows Phone 8 - MVVM ViewModels und App.xaml.cs ___ tag123viewmodel ___ Ein View-Modell oder Viewpoints-Framework ist ein Framework, das eine zusammenhängende Menge von Ansichten definiert, die beim Aufbau einer Architektur verwendet werden. Eine Ansicht ist eine Darstellung eines ganzen Systems aus der Perspektive einer verwandten Gruppe von Bedenken. ___ qstntxt ___

Ich habe das MVVM-Muster untersucht und es in einer Windows Phone 8-App umgesetzt. Ich habe eine Frage zu den Best Practices für die Initialisierung und den Zugriff auf ViewModels in einer App.

Wenn ich eine datengebundene Anwendung aus den WP8-SDKs-Vorlagen erstelle, ist mir dieser Code in der Datei App.xaml.cs aufgefallen:

%Vor%

Soweit ich weiß, bedeutet dies, dass die App -Klasse das MainViewModel als statisches Member enthält. Wenn die Anwendung aktiviert ist, wird das ViewModel geladen.

In diesem Fall habe ich folgende Fragen:

  1. Wenn meine App über mehrere ViewModels verfügt, werden sie alle als Mitglieder in der Datei App.xaml.cs gespeichert?

  2. Wenn die Daten eines jeden ViewModels gleichzeitig geladen werden, wie verwalte ich den Speicher meiner App? Ist es möglich, alle ViewModel-Daten zu entladen und nur das ViewModel zu laden, das von meiner View verwendet wird?

___ answer18976766 ___

Es gibt viele verschiedene Ansätze, ViewModels zu instanziieren. Einige von ihnen werden alle beim Start instanziieren, während andere das ViewModel nicht instanziieren, bis es benötigt wird.

Im folgenden Blog-Post finden Sie einige mögliche Ansätze, um ein ViewModel zu instanziieren:

MVVM Instanziierungsansätze

Antworten auf Ihre Fragen; 1.- Nach Ihrem Ansatz müssten Sie Mitglieder für alle Ihre ViewModels in Ihrer App.xaml.cs -Datei definieren. 2.- Sie können einem Ansatz folgen, der das ViewModel nicht instanziiert, bis es benötigt wird.

Es gibt einige Toolkits, wie MVVM Light oder Caliburn Micro , die die Implementierung von MVVM-Pattern erleichtern. Ich persönlich benutze MVVM Light Toolkit , das den Locator-Ansatz verwendet. Wenn Sie dieses Toolkit verwenden, werden ViewModels standardmäßig geladen, aber Sie können festlegen, dass beim Start ein bestimmtes ViewModel geladen wird, was in einigen Szenarien nützlich sein kann.

    
___

8

Ich habe das MVVM-Muster untersucht und es in einer Windows Phone 8-App umgesetzt. Ich habe eine Frage zu den Best Practices für die Initialisierung und den Zugriff auf ViewModels in einer App.

Wenn ich eine datengebundene Anwendung aus den WP8-SDKs-Vorlagen erstelle, ist mir dieser Code in der Datei App.xaml.cs aufgefallen:

%Vor%

Soweit ich weiß, bedeutet dies, dass die App -Klasse das MainViewModel als statisches Member enthält. Wenn die Anwendung aktiviert ist, wird das ViewModel geladen.

In diesem Fall habe ich folgende Fragen:

  1. Wenn meine App über mehrere ViewModels verfügt, werden sie alle als Mitglieder in der Datei App.xaml.cs gespeichert?

  2. Wenn die Daten eines jeden ViewModels gleichzeitig geladen werden, wie verwalte ich den Speicher meiner App? Ist es möglich, alle ViewModel-Daten zu entladen und nur das ViewModel zu laden, das von meiner View verwendet wird?

miguelarcilla 24.09.2013, 08:15
quelle

1 Antwort

9

Es gibt viele verschiedene Ansätze, ViewModels zu instanziieren. Einige von ihnen werden alle beim Start instanziieren, während andere das ViewModel nicht instanziieren, bis es benötigt wird.

Im folgenden Blog-Post finden Sie einige mögliche Ansätze, um ein ViewModel zu instanziieren:

MVVM Instanziierungsansätze

Antworten auf Ihre Fragen; 1.- Nach Ihrem Ansatz müssten Sie Mitglieder für alle Ihre ViewModels in Ihrer App.xaml.cs -Datei definieren. 2.- Sie können einem Ansatz folgen, der das ViewModel nicht instanziiert, bis es benötigt wird.

Es gibt einige Toolkits, wie MVVM Light oder Caliburn Micro , die die Implementierung von MVVM-Pattern erleichtern. Ich persönlich benutze MVVM Light Toolkit , das den Locator-Ansatz verwendet. Wenn Sie dieses Toolkit verwenden, werden ViewModels standardmäßig geladen, aber Sie können festlegen, dass beim Start ein bestimmtes ViewModel geladen wird, was in einigen Szenarien nützlich sein kann.

    
anderZubi 24.09.2013, 08:42
quelle

Tags und Links