Reputation: 1345
The case is simple, I did an multiple binding in code behind to TextBlock control, which looks like this:
TextBlock tb = new TextBlock();
tb.VerticalAlignment = VerticalAlignment.Center;
tb.HorizontalAlignment = HorizontalAlignment.Center;
MultiBinding multiTbBinding = new MultiBinding();
multiTbBinding.StringFormat = "{}{0} + {1}";
multiTbBinding.Bindings.Add(new Binding()
{
Path = new PropertyPath("PraceLamania[" + vm.PraceLamania.IndexOf(dpl) + "].DPL_Temperatura"),
UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged,
Mode = BindingMode.OneWay,
Source = vm
});
multiTbBinding.Bindings.Add(new Binding()
{
Path = new PropertyPath("PraceLamania[" + vm.PraceLamania.IndexOf(dpl) + "].DPL_Wynik"),
UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged,
Mode = BindingMode.OneWay,
Source = vm
});
BindingOperations.SetBinding(tb, TextBlock.TextProperty, multiTbBinding);
When I do an single value binding, then everything works just fine, but in this case I don't know where I did an mistake.
Could I ask for any suggestion?
Upvotes: 1
Views: 401
Reputation: 7325
The mistake is simple in a StringFormat
. Try just:
multiTbBinding.StringFormat = "{0} + {1}";
If you add to your original code:
multiTbBinding.FallbackValue = "Fallback";
then you will get Fallback in your Text
property.
Upvotes: 2