Um ein wenig Kontext zu geben: In unserer Anwendung haben wir eine Reihe von Begriffen in einer Datenbank gespeichert. Wir beziehen unsere Begriffe intern mit einem Schlüssel, während unsere Kunden entscheiden, welcher Text stattdessen erscheinen soll. Dies hat für unsere Webanwendungen gut funktioniert.UWP- Wie gehe ich vor, wenn ich auf eine variable Zeichenkette in einer Datatemplate verweise?
Allerdings haben wir für unsere UWP-Anwendung in unseren DataTemplates Probleme bekommen. So wie ich es verstehe, Datenvorlagen arbeiten wie folgt aus:
<DataTemplate x:DataType="ObjectWithAllInformation">
<Element Property={x:Bind PropertyOnAboveObject} />
</DataTemplate>
Das Problem ist, dass wir etwas binden wollen, sind die außerhalb des Kontextes dieses spezifischen Objekt vorhanden ist. Wir wollen so etwas wie dies tun:
<DataTemplate x:DataType="ObjectWithAllInformation">
<Textblock Text="{Some sort of binding to a global terms object?}" />
<Element Property={x:Bind PropertyOnAboveObject} />
</DataTemplate>
Gibt es eine Möglichkeit, eine solche globale Ressource zu instanziieren, die wir innerhalb der Datenvorlage auf diese Weise verweisen können? Etwas, das mir gerade in den Sinn gekommen ist, das ich noch nicht ausprobiert habe, ist, dass ein benutzerdefiniertes Benutzersteuerelement funktionieren könnte, aber es scheint übertrieben zu sein, auf einen String zuzugreifen. Gibt es einen einfachen Weg, dies zu erreichen?
Hat UWP nicht '{x: Static}'? Kannst du diese "globale Ressource" nicht einfach in z.B. Ihre App.xaml? Nehmen wir an, es scheint, als ob Sie immer noch in der Lage sein sollten, z.B. ein Konverter oder, vielleicht besser, ein Proxy-View-Modellobjekt, das die "globalen" Daten über eine Instanzeigenschaft verfügbar macht, an die gebunden werden kann. Leider ist es nicht einmal so klar, wie diese anderen Daten aussehen, an die Sie sich binden möchten. Die Frage ist ohne eine gute [mcve] schwer zu verstehen, die deutlich zeigt, was Sie zu tun versuchen, und eine genauere Beschreibung dessen, was der Code jetzt tut und was er stattdessen tun soll. –
Ich glaube nicht, dass es x: Static, aber es gibt ein StaticResourceExtension-Element, das ich an dieser Stelle nicht vollständig verstehe. Soweit ein Beispiel von dem, was ich will: Ich habe einen Schlüsselwert. Ich möchte in der Lage sein, diesen Schlüsselwert zu verwenden, um zur Laufzeit den passenden String aus der Datenbank zu erhalten (er kann zur Entwicklungszeit nicht bekannt sein, nur der Schlüssel ist bekannt). Ich möchte auf diese Zeichenfolge im Kontext eines DataTemplate zugreifen können. Die Verwendung eines Konverters mit meinem Schlüssel, der als Konverterparameter übergeben wurde, ist das, was ich morgen versuchen werde, obwohl ich um den asynchronen Datenzugriffsbereich herum arbeiten muss =) –
Sieht so aus, als ob der Konverter funktioniert hat! Ich habe immer noch alle Arten von Fragen zur Effizienz (da der Konverter diese Suche ausführen wird, um die Zeichenfolge für jedes Element in meiner Liste zu erhalten, anstatt eine Zeichenfolge in die Vorlage zu übergeben und wiederzuverwenden), aber das funktioniert zur Zeit. –