«MultiBinding» не может быть установлен в свойстве «Value» типа «Setter» - PullRequest
2 голосов
/ 27 октября 2011

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

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

Это может помочь другим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...