Wie Ansicht / Ansichtsmodell Bindung in MVVM-Anwendungen zu tun, so Expression Blend verwendet werden kann?

StackOverflow https://stackoverflow.com/questions/1017276

  •  06-07-2019
  •  | 
  •  

Frage

Wenn Sie die MVVM Visual Studio-Vorlage , dann sind Ihre Viewmodel auf Ihre Ansichten Datacontexts im App.xaml.cs etwas wie folgt gebunden:

MainView mainView = new MainView();
mainView.DataContext = new MainViewModel();
mainView.Show();

Und wenn Sie verwenden Composite Application Bibliothek , dann haben Sie Ihre Ansichten und Viewmodel zusammen in Ihrem etc Bootstrapper / Container / ServerLocator gebunden zu sein.

Auf jedem Fall, wenn Sie diese Projekte in Expression Blend öffnen und eine Ansicht XAML-Datei öffnen, Expression Blend nicht weiß, welches Ansichtsmodell gehört zu welcher Ansicht , da diese Bindung in Code durchgeführt, wie in über Instanzen.

Sie können natürlich setzt ein DataObjectProvider in Ihrem XAML so Expression Blend weiß, wo seine Daten für diese Ansicht zu erhalten, aber das bricht MVVM und das Entkoppeln Muster seit Ihrer Ansicht jetzt fest verdrahtet zu a spezifisches Ansichtsmodell. Es ist diese, wie Designer normalerweise mit Expression Blend an Projekten arbeiten, die mehr als eine kleine Demo sind?

Also für diejenigen von Ihnen, die MVVM Muster verwenden und die haben Designer, die Expression Blend verwenden, wie Sie Ihre Ansicht halten / Ansichtsmodell strukturiert Bindung, so dass Expression Blend wissen kann, welche Ansichtsmodell gehört die Ansichten?

War es hilfreich?

Lösung

Blend nicht geladen und Code ausführen, auch wenn es nicht die Anwendung läuft. Legen Sie einige Beispieldatacontext wenn DesignerProperties.GetIsInDesignMode (...) in einer Ansicht Konstruktor oder eine andere geeignetere Methode.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top