How can I pass a constant value for 1 binding in multi-binding?
If your value is simply a string
, you can specify it as a constant in the Source
property of a binding. If it is any other primitive data type, you need to define a static resource and reference this.
Define the sys
namespace in the root of the XAML to point to System
in mscorlib, and the following should work:
<TextBlock> <TextBlock.Resources> <sys:Int32 x:Key="fixedValue">123</sys:Int32> </TextBlock.Resources> <TextBlock.Text> <MultiBinding Converter="{StaticResource myConverter}"> <Binding Path="myFirst.Value" /> <Binding Source="{StaticResource fixedValue}" /> </MultiBinding> </TextBlock.Text></TextBlock>
Or, combining the two answers above:
<MultiBinding Converter="{StaticResource ScalingConverter}"> <Binding> <Binding.Source> <sys:Double>0.5</sys:Double> </Binding.Source> </Binding> <Binding ElementName="TC" Path="ActualWidth" /></MultiBinding>
Which provides the right type without the Resources kludge.
I don't quite follow the question but there are two options:
Put the line <Binding Source="123" />
in your multibinding will pass 123 as a bound value to your converter.
Put ConverterParameter="123"
in your MultiBinding:
<MultiBinding Converter="{StaticResource conv}" ConverterParameter="123">