Привязка к списку <Color>в XAML - PullRequest
0 голосов
/ 06 мая 2020

В настоящее время я создаю элемент управления, который будет отображать SVG. Как часть элемента управления, цвет может быть определен потребителем элемента управления.

Раньше у нас было что-то вроде:

<CustomControl Template="{StaticResource Blah}" PrimaryColour="Red" SecondaryColour="Green" />

Теперь это работало нормально, и 'Blah' отображалось как Красный и зеленый. Однако двухцветный подход явно ограничивает. Я хочу обновить наш элемент управления, чтобы он вел себя примерно так:

<CustomControl Template="{StaticResource Blah}" Colours="Red,Green" />

Для этого я добавил DependencyProperty с именем Colors типа Color []. Но при компиляции XAML я получаю следующую ошибку:

«TypeConverter для« Color [] »не поддерживает преобразование из строки.»

Я понимаю, почему это происходит, но что я хотите знать:

  1. Как преобразовать мой список строк в список Color?
  2. Как создать экземпляр списка значений Color в XAML для передачи свойство Цвета?

Большое спасибо! :)

1 Ответ

0 голосов
/ 06 мая 2020

Свойство Color[] может быть установлено только в значение Color[], если вы не определите преобразователь типов , который преобразует string в XAML в Color[].

В противном случае это должно работать:

<local:CustomControl>
    <local:CustomControl.Colours>
        <x:Array Type="Color">
            <Color>Red</Color>
            <Color>Green</Color>
        </x:Array>
    </local:CustomControl.Colours>
</local:CustomControl>
...