Bindung nur eines Teils eines Etiketts
Wie würde man erreichen, mischen gebundenen Werte mit Konstanten text in einer WPF-gebundenes Steuerelement?
Sagen wir zum Beispiel, ich habe ein Formular Bestellungen anzeigen, und ich möchte ein label, das text anzeigt, wie "Order-ID 1234".
Habe ich Sachen versucht wie:
text="Order ID {Binding ....}"
Ist das machbar, oder muss ich etwas tun, wie mehr als ein label in einen flow control?
InformationsquelleAutor der Frage Neil Barnwell | 2009-03-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie mit 3.5 SP1 verwenden, können Sie die
StringFormat
Eigenschaft der Bindung:Ansonsten einen Konverter verwenden:
Mit
StringFormatConverter
einIValueConverter
:Das wird den trick tun.
[Bearbeiten : Ändern Sie die
Text
EigenschaftContent
]InformationsquelleAutor der Antwort Inferis
Die Bindung.StringFormat-Eigenschaft funktioniert nicht auf den Etiketten, die Sie verwenden müssen, die ContentStringFormat Eigenschaft auf dem Etikett.
Zum Beispiel das folgende Beispiel funktioniert:
Während dieses Beispiel nicht:
InformationsquelleAutor der Antwort
Oft übersehen wird, ist einfach die Verkettung mehrerer Textblöcke zusammen, zum Beispiel
InformationsquelleAutor der Antwort bendewey
Ein weiterer Ansatz ist die Verwendung eines einzigen TextBlock mit mehreren Run-Elemente innerhalb es:
.. aber zu binden, um ein element, das Sie verwenden müssen, fügen Sie ein BindableRun Klasse.
Update Aber es gibt einige Nachteile dieser Technik ... siehe hier
InformationsquelleAutor der Antwort Rob Walker
Ich fand einen anderen ein Ansatz. @Inferis ' s Lösung funktioniert nicht für mich und @LPCRoy ist nicht elegant, für mich:
Es ist mein Favorit in diesem moment, es scheint, flexible und kondensiert.
InformationsquelleAutor der Antwort Mikołaj
Geändert Mikolaj Antwort.
FallbackValue ist nicht ein muss.
InformationsquelleAutor der Antwort Jogi Joseph George