Grzegorz G.
Grzegorz G.

Reputation: 1345

Multiple binding to TextBlock in code behind - where did I mistake?

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

Answers (1)

Rekshino
Rekshino

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

Related Questions