Microsoft-ui-xaml: Frage: Xaml-Entwurfszeitattribute und {x: Bind}

Erstellt am 6. Feb. 2020  ·  3Kommentare  ·  Quelle: microsoft/microsoft-ui-xaml

Hallo,

Ich habe ziemlich ausführlich online gesucht, um zu verstehen, wie wir x: Bind verwenden können und gleichzeitig Entwurfszeitdaten haben. Die einzigen vorgeschlagenen Lösungen scheinen die Verwendung von FallbackValue zu sein (z. B. https://stackoverflow.com/questions/31766366) / uwp-xbind-and-design-time-data oder Erstellen einer Art "Design" -Ansichtsmodell gemäß https://fast417.blogspot.com/2016/06/uwp-design-preview-with-xbind.html)

Ein besserer Ansatz, der weniger Entwicklungsaufwand erfordert und auch weniger invasiv ist (z. B. vermeiden, unseren ViewModels-Produktionscode mit Entwurfszeitdaten zu verschmutzen), besteht darin, mehr Entwurfszeitattribute (z. B. Text) zu unterstützen, ähnlich wie dies Android über seine Werkzeugattribute zulässt (https://developer.android.com/studio/write/tool-attributes)

PS - Ich habe ein ähnliches Ticket für die Entwickler-Community erstellt , aber kein Feedback erhalten.

Vielen Dank,
Cosmin

area-Tooling feature proposal question team-Markup

Hilfreichster Kommentar

In der Tat sieht der Artikel von

Ich werde es versuchen. Vielen Dank!

Alle 3 Kommentare

Ich hatte versucht, ein älteres DesignTime Data-Beispiel ( Artikel hier ) auf das aktuelle UWP zu portieren, stellte jedoch bald fest, dass es viel mehr Lücken gibt, obwohl einige Methoden immer noch funktionieren. Ich dachte, ich hätte irgendwo einen Thread dazu, kann mich aber nicht erinnern, wo jetzt ...

Ich weiß, dass @mrlacey auch hier über dieses Thema gebloggt hat .

In der Tat sieht der Artikel von

Ich werde es versuchen. Vielen Dank!

Keiner der vorgeschlagenen Ansätze, die x:Bind funktioniert. Daher scheint das Schreiben des folgenden Codes die einzige Möglichkeit zu sein, sowohl Entwurfszeitinstanzen als auch die Markup-Erweiterung x:Bind . Scheint allerdings ziemlich ausführlich zu sein.

Der Grund dafür ist, dass beim Öffnen Ihrer XAML-Seite in Visual Studio oder Blend for Visual Studio der zwingende Code, der den DataContext-Wert zuweist, niemals ausgeführt wird (tatsächlich wird kein CodeBehind ausgeführt ). Die XAML-Tools analysieren natürlich Ihr Markup und instanziieren alle darin deklarierten Objekte, aber sie instanziieren den Typ Ihrer Seite selbst nicht. Das Ergebnis ist, dass Sie keine Daten in Ihren Steuerelementen oder im Dialogfeld "Datenbindung erstellen" sehen und Ihre Seite schwieriger zu gestalten und zu gestalten ist - Beispieldaten auf der Entwurfsoberfläche und für das Prototyping @ https: / /docs.microsoft.com/en-us/windows/uwp/data-binding/displaying-data-in-the-designer

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen