Многократная привязка к TextBlock в коде позади - где я ошибся? - PullRequest
0 голосов
/ 04 января 2019

Случай прост, я сделал несколько привязок в коде к элементу управления TextBlock, который выглядит следующим образом:

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);

Когда я выполняю привязку к одному значению, тогда все работает просто отлично, но в этом случае я не знаю, где я допустил ошибку.

Могу ли я попросить любое предложение?

1 Ответ

0 голосов
/ 04 января 2019

Ошибка проста в StringFormat.Попробуйте просто:

multiTbBinding.StringFormat = "{0} + {1}";

Если вы добавите к исходному коду:

multiTbBinding.FallbackValue = "Fallback";

, тогда вы получите Откат в свойстве Text.

...