2013-02-19 2 views
1

Я новичок в WPF, и, конечно, я столкнулся с некоторыми проблемами с Bindings.Проблема с привязкой WPF

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

ответ

0

Его потому, что 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> 
+0

Спасибо за ваш ответ! Полностью понятен, но, к сожалению, как только я добавлю ' ....' Он ничего не отобразит, просто пустая диаграмма. –

+0

Я думаю, вам придется проверить документацию telerik и посмотреть, разрешают ли они это, кажется странным, что они этого не сделают, иначе вам придется сделать «Конвертер» или сделать «Цвет» «Кистью» –

Смежные вопросы