J'ai une multi-liaison comme
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource myConverter}">
<Binding Path="myFirst.Value" />
<Binding Path="mySecond.Value" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
Et je veux passer une valeur fixe par exemple "123" à l'une des deux liaisons ci-dessus. Comment puis-je faire cela en utilisant XAML?
wpf
binding
multibinding
Nam G VU
la source
la source
Réponses:
Si votre valeur est simplement a
string
, vous pouvez la spécifier comme constante dans laSource
propriété d'une liaison. S'il s'agit d'un autre type de données primitif, vous devez définir une ressource statique et la référencer.Définissez l'
sys
espace de noms à la racine du XAML vers lequel pointerSystem
dans mscorlib, et ce qui suit devrait fonctionner:la source
Ou, en combinant les deux réponses ci-dessus:
Qui fournit le bon type sans le kludge de ressources.
la source
sys
de noms au niveau de la tête du document:xmlns:sys="clr-namespace:System;assembly=mscorlib"
Je ne suis pas tout à fait la question mais il y a deux options:
Mettez la ligne
<Binding Source="123" />
dans votre multibinding passera 123 comme valeur liée à votre convertisseur.Mettez
ConverterParameter="123"
dans votre MultiBinding:<MultiBinding Converter="{StaticResource conv}" ConverterParameter="123">
la source
IValueConverter
, les paramètres sont transmis commeobject
, ce qui signifie que vous devez convertir la valeur dans le type correct, de manière sûre. IValueConverter.ConvertJe ne dis pas que c'est une réponse particulièrement bonne, mais voici une autre approche:
la source