2013-02-19 199 views
1

我是WPF的新手,當然我遇到了Bindings的一些問題。綁定問題WPF

我已經初始化了RadCartesianChart,我希望顯示來自不同類型的類別列表的數據。對於每個列表,我需要不同的顏色,但是我無法將代碼填充屬性綁定到代碼後面的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

它是因爲FillBrush而您試圖指定Color,這不會起作用。

您必須將Color分配給Fill屬性中SolidColorBrushColor屬性。

<telerik:AreaSeries CategoryBinding="Date" ValueBinding="Rev"> 
    <telerik:AreaSeries.Fill> 
     <SolidColorBrush Color="{Binding Color}" /> 
    </telerik:AreaSeries.Fill> 
</telerik:AreaSeries> 
+0

謝謝您的回答!完全有意義,但不幸的是,只要我添加' ....'它不會顯示任何東西只是空的圖表。 – 2013-02-20 00:22:00

+0

我想你必須檢查'telerik'文檔,看看他們是否允許這個,看起來很奇怪他們不會這樣做,否則你將不得不做一個'Converter'或者把'Color'變成'Brush' – 2013-02-20 00:30:23