Wie kann ich mit Expression Blend ein in Visual Studio erstelltes DataTemplate bearbeiten?

8

Für diejenigen von Ihnen, die Expression Blend sowie Visual Studio in Ihren realen Projekten verwenden, bitte helfen Sie mir zu verstehen, wie Sie Blend und Visual Studio in Ihren täglichen Entwicklungs- / Designaufgaben verwenden , hier ist ein echtes Szenario:

Ich habe die folgende einfache WPF-Anwendung in Visual Studio erstellt. zeigt eine Liste von Kundenobjekten mit einem DataTemplate , die die Kunden in einfachen orangefarbenen Feldern anzeigt.

Ich möchte jetzt mithilfe von Expression Blend ein wenig Schwung in diese DataTemplate einfügen.

Ich öffne das Projekt in Expression Blend und denke, dass ich die orangefarbenen Kästchen sehen werde, mit denen ich die Farbe ändern kann, erstelle eine Animation, wenn ich die Maus über sie drehe, verändere sie usw. Alles, was ich in Expression Blend sehe, ist jedoch eine vollständig leere Box .

So verstehe ich:

  • Expression Blend scheint nicht zu verstehen, dass meine Daten aus dem ViewModel kommen und zeigt sie daher nicht an. Ist das eine Einschränkung von Blend oder muss ich meinen Code in irgendeiner Weise ändern, damit Blend interpretieren kann, welche Daten zur Laufzeit ausgegeben werden?
  • Ich verwende Expression Blend 3, das über "Beispieldaten" verfügt. Was ist der beste Weg, dieses Beispieldatenfeature zu verwenden, damit selbst dann, wenn es das C # nicht interpretieren und verstehen kann, welche Daten aus der ViewModel-Eigenschaft kommen, um die Listbox zu füllen es um zumindest einige Dummy-Daten zu erzeugen, so dass ich die DataTemplate?
  • manipulieren kann

XAML:

%Vor%

Hinterer Code:

%Vor%     
Edward Tanguay 05.05.2009, 11:54
quelle

3 Antworten

7

Ich habe das gerade herausgefunden, also erlauben Sie mir, meine eigene Frage zu beantworten.

Ich las Laurents Bugnion-Artikel zu diesem Thema und es stellte sich heraus, dass ich nur zwicken musste Der obige Code, damit ich die Daten aus meinem ViewModel in der Expression Blend-GUI sehen konnte und in der Lage war, das DataTemplate in Blend zu bearbeiten, zu speichern und dann in Visual Studio weiter zu bearbeiten.

Grundsätzlich sind die Änderungen: (1) Entfernen Sie die DataContext-Anweisung aus dem Code dahinter, (2) fügen Sie den "lokalen" Namespace in XAML hinzu, (3) definieren Sie einen lokalen Datenprovider in XAML ("TheDataProvider"), (4 ) binden Sie direkt an die ListBox.

Hier ist der Code, der in Expression Blend und Visual Studio vollständig funktioniert:

XAML:

%Vor%

Hinterer Code:

%Vor%     
Edward Tanguay 07.05.2009, 07:31
quelle
2

Ich habe einen Blogbeitrag zu diesem Thema: Ссылка

In meinem Beitrag geht es darum, Daten in blend anzuzeigen, ohne diese Daten zur Laufzeit anzeigen oder erstellen zu müssen.

    
Rob Fonseca-Ensor 05.10.2009 13:45
quelle
0

Wenn Sie möchten, dass Blend und Visual Studio sehen, was der Datenkontext nur im Entwurfsmodus hat, kann dies mit den Debugoptionen auf der Seite definiert werden. Sagen wir zum Beispiel, dass meine Seite (in Code-Behind) ihren Datenkontext an MainVM in meinem Namespace WP8TestBed bindet, indem ich diese Information auf den Attributen der Hauptseite als d: DataContext informiere, sie wird nur während der Entwurfszeit verwendet (ich kann mit ihr binden) die Assistenten) und erstellt auch keine neue Instanz des Ansichtsmodells zur Laufzeit.

Hier ist das Beispiel, alle diese Namespaces werden benötigt (d, mc und das lokale, wo mein ViewModel (MainVM) lebt):

%Vor%     
OmegaMan 30.04.2013 13:23
quelle

Tags und Links