Hallo, vielleicht bin ich zu spät, da seit deinem ersten Beitrag 8 Monate vergangen sind ... Ich hatte das gleiche Problem in einer Silverlight-MVVM-Anwendung. und ich fand meine Lösung so. Für jedes Modell und Ansichtsmodell, das ich habe, habe ich auch eine Klasse namens Controller. so wie das
public class MainView : UserControl // (because it is a silverlight user controll)
public class MainViewModel
public class MainController
Mein MainController ist für den Befehl und die Verbindung zwischen Modell und Ansichtsmodell verantwortlich. Im Konstruktor instanziiere ich die Ansicht und ihr Ansichtsmodell und setze den Datenkontext der Ansicht auf ihr Ansichtsmodell.
mMainView = new MainView();
mMainViewModel = new MainViewModel();
mMainView.DataContext = mMainViewModel;
// (in meiner Namenskonvention habe ich ein Präfix m für Mitgliedsvariablen)
Ich habe auch eine öffentliche Eigenschaft in der Art meiner MainView. so wie das
public MainView View { get { return mMainView; } }
(Diese mMainView ist eine lokale Variable für das öffentliche Eigentum.)
und jetzt bin ich fertig. Ich muss nur meinen Dispatcher für meine Benutzeroberfläche verwenden ...
mMainView.Dispatcher.BeginInvoke(
() => MessageBox.Show(mSpWeb.CurrentUser.LoginName));
(In diesem Beispiel habe ich meinen Controller gebeten, meinen Sharepoint 2010-Loginnamen zu erhalten, aber Sie können tun, was Sie brauchen.)
Wir sind fast fertig. Sie müssen auch Ihr Root-Visual in der app.xaml so definieren
var mainController = new MainController();
RootVisual = mainController.View;
Das hat mir durch meine Bewerbung geholfen. Vielleicht kann es dir auch helfen ...