动态将颜色绑定到Xamarin形状

时间:2018-08-17 09:29:37

标签: c# xaml xamarin.forms

我正在Xamarin表单项目中使用库“ Stormlion.ShapeControl”(GitHub here)在列表视图项中生成一个圆。

列表中的每个项目都需要为圆使用不同的填充色。

现在我正在使用代码

<shapes:Circle HeightRequest="20" WidthRequest="20">
    <shapes:Circle.Paint>
        <shapes:SSPaint x:Name="circleFillColor" FillColor="Orange"/>
    </shapes:Circle.Paint>
</shapes:Circle>

哪个可以正常工作,但是当我尝试使用以下代码绑定颜色时:

<shapes:Circle HeightRequest="20" WidthRequest="20">
    <shapes:Circle.Paint>
        <shapes:SSPaint x:Name="circleFillColor" FillColor="{Binding Path=Color}"/>
    </shapes:Circle.Paint>
</shapes:Circle>

我得到了错误:

  

找不到“ FillColor”的属性,可绑定属性或事件,或者值和属性之间的类型不匹配。

我也无法从后面的代码访问属性(我假设它是列表视图的一部分?)

如果有人能指出我正确的方向,那就太好了!

1 个答案:

答案 0 :(得分:2)

检查SSPaint对象的the codeFillColor似乎不是可绑定的属性,因此您不能像这样使用它。您将不得不给它一个静态的颜色。

您可以创建自己的继承来解决此问题,和/或在请求该功能的仓库中打开一个问题。似乎已经有人为BorderColor做过:https://github.com/stormlion227/ShapeControl.Forms/issues/1