2013-02-19 4 views
1

저는 WPF에서 새로 왔으며 물론 Bindings와 관련된 몇 가지 문제에 직면 해 있습니다.바인딩 문제 WPF

RadCartesianChart를 초기화했으며 다른 유형의 카테고리 목록에서 데이터를 표시하고 싶습니다. 각 목록마다 다른 색상을 원하지만 Bind 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; 

하지만, 색상은 기본값입니다. 그래서 Color의 제 바인딩은 작동하지 않습니다. 이 줄에 문제가 있습니까 Fill={Binding Color}? 왜?

답변

0

그 이유는 FillBrush이고 Color을 할당하려고하기 때문에 작동하지 않습니다.

ColorFill 속성의 인 Color 속성에 할당해야합니다. 답변에 대한

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

감사합니다! ' ....'을 추가하자마자 완전히 이해할 수 있지만 불행히도 빈 차트에 아무것도 표시되지 않습니다. –

+0

'telerik' 문서를 확인하고 이것이 허용되는지 아닌지 이상하게 보일 것입니다. 그렇지 않으면'Converter'를 만들거나'Color'를'Brush'로 만들어야합니다. –