Обязательный вопрос 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>