Stringformat verkettet Datenbindung und Ressourcen Wert
Möchte ich verketten Sie in mein Fenster Titel einer Immobilie aus meinem viewmodel und einen Wert, die kamen aus einer Ressourcen-Datei.
Dies ist, was ich habe zu arbeiten, ohne den string von Ressourcen:
Title="Binding Path=Description, StringFormat=Building: {0}}"
Möchte ich nun entfernen Sie die "Gebäude", string und setzen Sie den Wert aus einer Quelle, die wie ich auf andere Orte:
xmlns:res="clr-namespace:Project.View.Resources"
{res:Strings.TitleDescription}
Wie kann ich definieren? Kann ich festlegen, wie ein {1} - parameter?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, Sie können. Verwenden Sie einfach ein
MultiBinding
.Dem MSDN-Artikel auf
StringFormat
hat ein Beispiel.In deinem Fall, würde der code wie folgt Aussehen:
xmlns:res="clr-namespace:MyApp.Properties"
. Auch, stellen Sie sicher, dass der access-modifier für Ihre Ressourcen gesetzt wird, umpublic
, sonst WPF kann es nicht sehen.Ich habe gesehen, das
MultiBinding
Antwort in mehreren Orten, die jetzt, und es ist fast nie notwendig, es zu benutzen. Definieren Sie Ihre Ressource als string-format statt, und so lange es ist nur eine format-string-argument, keineMultiBinding
erforderlich ist. Macht den code viel kürzer:Und die
TitleDesc
Ressource ist offensichtlich"Building: {0}"
.{}
.Auch ich wollte so etwas wie\\Path\{0}
so was ich am Ende die Umsetzung .resx-Datei wurde\\\\Path\\{0}
- benötigt, um zu entkommen die backslashes