绑定到 XAML 中的列表<Color>
Binding to List<Color> in XAML
我目前正在创建一个将呈现 SVG 的控件。作为控件的一部分,颜色可以由控件的使用者定义。
以前,我们有类似的东西;
<CustomControl Template="{StaticResource Blah}" PrimaryColour="Red" SecondaryColour="Green" />
现在效果很好,'Blah' 将呈现为红色和绿色。然而,2 种颜色的方法显然非常有限。我希望更新我们的控件以实现类似这样的行为;
<CustomControl Template="{StaticResource Blah}" Colours="Red,Green" />
为了实现这一点,我添加了一个名为 Colors,类型为 Color[] 的 DependencyProperty。但是当我编译 XAML;
时出现以下错误
"The TypeConverter for "Color[]" 不支持从字符串转换。"
我明白为什么会这样,但我想知道的是;
- 如何将我的字符串列表转换为颜色列表?
- 如何实例化 XAML 中的颜色值列表以传递给颜色 属性?
非常感谢! :)
A Color[]
属性 只能设置为 Color[]
值,除非您定义一个 type converter 将 string
转换为 [=20] =] 到 Color[]
。
否则这应该有效:
<local:CustomControl>
<local:CustomControl.Colours>
<x:Array Type="Color">
<Color>Red</Color>
<Color>Green</Color>
</x:Array>
</local:CustomControl.Colours>
</local:CustomControl>
我目前正在创建一个将呈现 SVG 的控件。作为控件的一部分,颜色可以由控件的使用者定义。
以前,我们有类似的东西;
<CustomControl Template="{StaticResource Blah}" PrimaryColour="Red" SecondaryColour="Green" />
现在效果很好,'Blah' 将呈现为红色和绿色。然而,2 种颜色的方法显然非常有限。我希望更新我们的控件以实现类似这样的行为;
<CustomControl Template="{StaticResource Blah}" Colours="Red,Green" />
为了实现这一点,我添加了一个名为 Colors,类型为 Color[] 的 DependencyProperty。但是当我编译 XAML;
时出现以下错误"The TypeConverter for "Color[]" 不支持从字符串转换。"
我明白为什么会这样,但我想知道的是;
- 如何将我的字符串列表转换为颜色列表?
- 如何实例化 XAML 中的颜色值列表以传递给颜色 属性?
非常感谢! :)
A Color[]
属性 只能设置为 Color[]
值,除非您定义一个 type converter 将 string
转换为 [=20] =] 到 Color[]
。
否则这应该有效:
<local:CustomControl>
<local:CustomControl.Colours>
<x:Array Type="Color">
<Color>Red</Color>
<Color>Green</Color>
</x:Array>
</local:CustomControl.Colours>
</local:CustomControl>