2010-10-19 25 views
22

Ich habe die QuickInfo eines Schiebereglers an die Value-Eigenschaft gebunden und ich versuche StringFormat zu verwenden, um es anzuzeigen "Current Value {0} of 10" wo { 0} ist die Value-Eigenschaft. Unten ist eine der verschiedenen Sachen, die ich versucht habe, als ich versuchte, das herauszufinden.wpf - binding stringformat auf dem Etikett mit String-Literal

Ich habe Probleme bei der Online-Suche nach Beispielen dafür, wie man stringformat mit Zeichenfolgenliteralen wie meinem oben verwendet. Ich sehe eine Menge Stringformat bei der Konvertierung von Datum/Uhrzeit/Währungsformat. Ich denke, ich habe eine Möglichkeit, dies mit einem Multibinding zu tun, aber es scheint nur eine zusätzliche Menge an Arbeit als nötig. Ich hoffe, dass ich für String-Literal-Formatierung immer noch keinen benutzerdefinierten Konverter schreiben muss.

In meiner App finde ich mich mit vielen zusätzlichen Etiketten neben den Elementen, so dass ein Verständnis im stringformat hoffentlich ich einige dieser unnötigen Etiketten beseitigen lassen kann.

Antwort

32

Für die QuickInfo können Sie WPF binding with StringFormat doesn't work on ToolTips auschecken.

Soweit das oben angegebene StringFormat, müssen Sie Ihre Zeichenfolge zu entkommen.

StringFormat="{}Current Value {0} of 10" 

Hier sind eine Reihe von StringFormat Beispielen. http://blogs.msdn.com/b/llobo/archive/2008/05/19/wpf-3-5-sp1-feature-stringformat.aspx

+1

Ich kann immer noch nicht die Bindung an die Eigenschaft Value meiner Schieber arbeiten aber es funktioniert, wenn ich die QuickInfo an die Variable gebunden habe, an die der Slider gebunden ist. Vielleicht ist Value keine bindbare Slider-Eigenschaft..hmm – TWood

94

Label.Content ist Objekt, so dass Sie nicht Binding.StringFormat dort als die Bindung der Zieltyp muss string sein, um für sie arbeiten verwenden können.

Zwei Arbeitsumgebungen sind: Verwenden Sie TextBlock anstelle von Label und binden Sie die Text Eigenschaft.

Verwenden Label.ContentStringFormat dh

<Label ContentStringFormat="Current Value {0} of 10" Content={Binding ...} /> 

Sie müssen nur die string mit {} entkommen, wenn Ihr erstes Zeichen a {

+0

Datumsangaben können hier wie folgt formatiert werden: "Startdatum: {0: TT-MM-JJJJ}" –