Обязательный вопрос WPF

Я новичок в 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}? Зачем?

1 ответ

Это потому что Fill это Brush и вы пытаетесь назначить Colorэто не сработает.

Вы должны будете назначить свой Color к Color свойство SolidColorBrush в Fill имущество.

пример

<telerik:AreaSeries CategoryBinding="Date" ValueBinding="Rev">
    <telerik:AreaSeries.Fill>
        <SolidColorBrush Color="{Binding Color}" />
    </telerik:AreaSeries.Fill>
</telerik:AreaSeries>
Другие вопросы по тегам