hallo vielleicht bin ich zu spät, da es 8 Monate seit Ihrem ersten Beitrag ist ... Ich hatte das gleiche Problem in einer Silverlight MVVM-Anwendung. und ich fand meine Lösung so. für jedes modell und anschauungsmodell, die ich habe, habe ich auch eine klasse namens controller. wie der
public class MainView : UserControl // (because it is a silverlight user controll)
public class MainViewModel
public class MainController
meines MainController ist verantwortlich für die Befehls- und die Verbindung zwischen dem Modell und Viewmodel. Im Konstruktor setze ich die View und ihr Viewmodel ein und setze den Datenkontext der View auf ihr Viewmodel.
mMainView = new MainView();
mMainViewModel = new MainViewModel();
mMainView.DataContext = mMainViewModel;
// (in meiner Namenskonvention habe ich einen Präfix m für Membervariablen)
ich habe auch eine öffentliche Eigenschaft in der Art meines Mainview. wie die
public MainView View { get { return mMainView; } }
(diese mMainView ist eine lokale Variable für die öffentliche Eigenschaft)
und jetzt bin ich fertig. Ich brauche nur meine Dispatcher für meine ui therad wie folgt zu verwenden ...
mMainView.Dispatcher.BeginInvoke(
() => MessageBox.Show(mSpWeb.CurrentUser.LoginName));
(in diesem Beispiel war ich meinen Controller bitten, meinen Sharepoint 2010-Login-Namen, aber Sie können tun, was Ihre Notwendigkeit)
wir sind fast fertig Sie müssen auch Ihre Wurzel visuelle in der app.xaml wie diese
var mainController = new MainController();
RootVisual = mainController.View;
dies durch meine Anwendung hat mir geholfen, definieren. vielleicht kann es dir auch helfen ...
Können Sie ein Beispiel für eine Implementierung in einem wpf UserControl bereitstellen? – Femaref
Ja, können Beispiele zur Implementierung bereitgestellt werden? Vielen Dank. – K2so
Besser spät als nie ;-) Versuchen Sie Folgendes: http://pastebin.com/eXTQf9vm – Matthias