Ich habe eine Mehrfachbindung wie
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource myConverter}">
<Binding Path="myFirst.Value" />
<Binding Path="mySecond.Value" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
Und ich möchte einen festen Wert, z. B. "123", an eine der beiden obigen Bindungen übergeben. Wie kann ich das mit XAML machen?
wpf
binding
multibinding
Nam G VU
quelle
quelle
Antworten:
Wenn Ihr Wert einfach a ist
string
, können Sie ihn als Konstante in derSource
Eigenschaft einer Bindung angeben . Wenn es sich um einen anderen primitiven Datentyp handelt, müssen Sie eine statische Ressource definieren und darauf verweisen.Definieren Sie den
sys
Namespace im Stammverzeichnis der XAML, auf denSystem
in mscorlib verwiesen werden soll, und Folgendes sollte funktionieren:quelle
Oder kombinieren Sie die beiden obigen Antworten:
Welches bietet den richtigen Typ ohne die Ressourcen kludge.
quelle
sys
am Dokumentenkopf zu definieren :xmlns:sys="clr-namespace:System;assembly=mscorlib"
Ich folge der Frage nicht ganz, aber es gibt zwei Möglichkeiten:
<Binding Source="123" />
Wenn Sie die Zeile in Ihre Mehrfachbindung einfügen, wird 123 als gebundener Wert an Ihren Konverter übergeben.ConverterParameter="123"
Fügen Sie Ihre MultiBinding ein:<MultiBinding Converter="{StaticResource conv}" ConverterParameter="123">
quelle
IValueConverter
werden die Parameter als übergebenobject
, was bedeutet, dass Sie den Wert auf sichere Weise in den richtigen Typ umwandeln müssen. IValueConverter.ConvertIch sage dies nicht als besonders gute Antwort, aber hier ist ein anderer Ansatz:
quelle