wpfbindingmultibinding

How can I pass a constant value for 1 binding in multi-binding?


I have a multi-binding like

<TextBlock>
    <TextBlock.Text>
        <MultiBinding Converter="{StaticResource myConverter}">
            <Binding Path="myFirst.Value" />
            <Binding Path="mySecond.Value" />
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>

And I want to pass a fixed value e.g. "123" to one of the two bindings above. How can I do that using XAML?


Solution

  • 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>