Bind an element to two sources

Nick picture Nick · Nov 4, 2008 · Viewed 49.6k times · Source

I currently have two text boxes which accept any number. I have a text block that takes the two numbers entered and calculates the average.

I was wondering if there was a way I could bind this text block to both text boxes and utilize a custom converter to calculate the average? I currently am catching the text changed events on both text boxes and calculating the average that way, but I am under the assumption data binding would be more efficient and easier.

Answer

Jacob Carpenter picture Jacob Carpenter · Nov 4, 2008

You're looking for MultiBinding.

Your XAML will look something like this:

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

With reasonable replacements for myConverter, myFirst.Value, and mySecond.Value.