Название объясняет это, я думаю, я пытаюсь установить вычисляемую мульти-привязку в стиле шаблона.
<Style TargetType="{x:Type controls:MyControl}">
<Setter Property="Width">
<Setter.Value>
<MultiBinding Converter="{StaticResource TimespanToWidth}">
<Binding Path="RangeLength" />
<Binding Path="TickWidth" />
</MultiBinding>
</Setter.Value>
</Setter>
</Style>
Есть решение?
EDIT:
Проблема была в том, что пользовательское расширение разметки создавало в коде мультисвязывание. Я ложно предполагал, что это не может быть сделано из
Пример кода:
public override object ProvideValue(IServiceProvider serviceProvider)
{
var b = new MultiBinding();
b.Converter = new SimpleConverter();
b.Bindings.Add(new Binding("A"));
b.Bindings.Add(new Binding("B"));
return b.ProvideValue(serviceProvider);
}
Изменено на:
public override object ProvideValue(IServiceProvider serviceProvider)
{
var b = new MultiBinding();
b.Converter = new SimpleConverter();
b.Bindings.Add(new Binding("A"));
b.Bindings.Add(new Binding("B"));
return b;
}
Это может помочь другим.