1

我是 WPF 的新手,当然我遇到了 Bindings 的一些问题。

我已经初始化了 RadCartesianChart,我想显示来自不同类型的类别列表的数据。对于这些列表中的每一个,我都想要不同的颜色,但是我无法在后面的代码中将 Fill 属性绑定到我的 Color 属性。

这就是我的 XAML 的样子:

    <telerik:RadCartesianChart Name="RevChart">
        <telerik:RadCartesianChart.Grid>
            <telerik:CartesianChartGrid MajorYLineDashArray="5, 5" MajorLinesVisibility="Y">
                <telerik:CartesianChartGrid.MajorYLineStyle>
                    <Style TargetType="{x:Type Line}">
                        <Setter Property="Stroke" Value="Gray"/>
                    </Style>
                </telerik:CartesianChartGrid.MajorYLineStyle>
            </telerik:CartesianChartGrid>
        </telerik:RadCartesianChart.Grid>
        <telerik:RadCartesianChart.HorizontalAxis>
            <telerik:CategoricalAxis />
        </telerik:RadCartesianChart.HorizontalAxis>
        <telerik:RadCartesianChart.VerticalAxis>
            <telerik:LinearAxis/>
        </telerik:RadCartesianChart.VerticalAxis>

        <telerik:AreaSeries CategoryBinding="Date" ValueBinding="Rev" Fill="{Binding Color}">

        </telerik:AreaSeries>

    </telerik:RadCartesianChart>

这是我的 C# 代码:

public class Revenue
{
    public double Rev { get; set; }
    public DateTime Date { get; set; }
    public Color Color { get; set; }
}

List<Revenue> list = new List<Revenue>();
...
...
this.RevChart.Series[0].ItemsSource = list;

结果我得到了正确的图片,但颜色是默认的。所以我的颜色绑定不起作用。这条线有问题Fill={Binding Color}吗?为什么?

4

1 回答 1

0

这是因为Fill是 aBrush并且您正在尝试分配 a Color,这将不起作用。

您必须将您Color的财产分配给Color财产SolidColorBrush中的Fill财产。

例子

<telerik:AreaSeries CategoryBinding="Date" ValueBinding="Rev">
    <telerik:AreaSeries.Fill>
        <SolidColorBrush Color="{Binding Color}" />
    </telerik:AreaSeries.Fill>
</telerik:AreaSeries>
于 2013-02-20T00:10:37.480 回答