Bind a Property to More Than 1 Binding Source
By Michael Detras
This shows how to bind a dependency property to more than 1 binding source using multi-binding.
Sometimes, we need to bind a dependency property to more than 1 binding source. For
example, we want a TextBox to contain the first and last names of a person. Assuming
we have FirstName and LastName properties of a Person object, we can bind them
to the Text property using MultiBinding.
<TextBox>
<TextBox.Text>
<MultiBinding Converter="{StaticResource NamesConverter}">
<Binding Path="Person.FirstName"/>
<Binding Path="Person.LastName"/>
</MultiBinding>
</TextBox.Text>
</TextBox>
We just need to define an IMultiValueConverter that will concatenate the strings,
and add it to the Resources section.
public class NamesConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
return values[0].ToString() + values[1].ToString();
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
Related FAQs
Bind properties to your control without the XAML.
Shows an example on how to bind to a property of a UI element using XAML.
Bind a Property to More Than 1 Binding Source (2537 Views)