2013-02-20 3 views
0

У меня есть работающий MultiBinding с Path.Data (путь здесь System.Windows.Shapes.Path). Обратный тип преобразователя - System.Windows.Media.PathGeometry.Как MultiBinding слишком GeometryGroup

<Path.Data> 
    <MultiBinding Converter="{StaticResource ResourceKey=ToPathGeometryMultiConverter}"> 
    <Binding Path="A"/> 
    <Binding Path="B"/> 
    <Binding Path="C"/> 
    </MultiBinding>--> 
</Path.Data> 

Теперь я хочу, чтобы изменить структуру немного и добавить несколько геометрий в GeometryGroup. Я не знаю синтаксиса, как добавить MultiBinding здесь.

<Path.Data>      
    <GeometryGroup>  
    <PathGeometry> 
    <!-- HOW CAN I MULTIBIND HERE --> 
    </PathGeometry> 
    </GeometryGrounp> 
<Path.Data> 

Независимо от того, что я пытался, у меня всегда была ошибка компиляции.

ответ

1

Вы можете связать PathGeometry.Figures свойство и есть конвертер, который возвращает PathFigureCollection, но я боюсь, что вы должны жить с тем, что VS Designer жалуется на XAML.

<Path.Data> 
    <GeometryGroup> 
     <PathGeometry> 
      <PathGeometry.Figures> 
       <MultiBinding Converter="{StaticResource PathFiguresConverter}"> 
        <Binding Path="A"/> 
        <Binding Path="B"/> 
        <Binding Path="C"/> 
       </MultiBinding> 
      </PathGeometry.Figures> 
     </PathGeometry> 
    </GeometryGroup> 
</Path.Data> 
+0

Спасибо. Это работает. Вы знаете, почему VS Designer жалуется, даже если он компилируется и работает нормально? –

+0

Как говорится в сообщении, он ожидает, что вы добавите элементы рисунка в коллекцию Figures, и, конечно, MultiBinding не является фигурой. Не знаю, почему он не может обнаружить, что он не добавляет элементы, а устанавливает свойство привязкой. – Clemens

-1

Вы можете попробовать поставить код привязки вместо PathGeometry тегов

<Path.Data>      
    <MultiBinding Converter="{StaticResource ResourceKey=ToPathGeometryMultiConverter}"> 
     <Binding Path="A"/> 
     <Binding Path="B"/> 
     <Binding Path="C"/> 
    </MultiBinding> 
<Path.Data> 
+0

Это не работает. Он генерирует исключение XamlParseException. В GeometryCollection нельзя использовать многосвязывание. Дополнительная информация: требуется DependencyProperty объекта DependencyObject. –

+0

Удалить метки GeometryGroup too – Blablablaster

+1

Вы издеваетесь? Вы прочитали мой вопрос? «Решение», которое вы мне дали, - это рабочий код, который я имел в начале. Теперь я хочу расширить программу и добавить GeometryGroup (набор из нескольких разных геометрий). –

 Смежные вопросы

  • Нет связанных вопросов^_^