2013-02-21 50 views
1

我有兩個問題:WPF動態添加控件和綁定的問題

  1. 爲什麼Color結合不起作用。你能否提供適當的設置綁定方式來動態管理顏色?我的SplineAreaSeries是靜態的,並在XAML中初始化。如果我想再添加10個系列,那麼最好和更優雅的方法是什麼?

XAML:

<telerik:RadCartesianChart x:Name="xRevChart"> 
     <telerik:RadCartesianChart.Grid> 
      <telerik:CartesianChartGrid MajorLinesVisibility="XY" MajorXLineDashArray="10.5" 
             MajorXLinesRenderMode="All"/> 
     </telerik:RadCartesianChart.Grid> 
     <telerik:RadCartesianChart.VerticalAxis> 
      <telerik:LinearAxis></telerik:LinearAxis> 
     </telerik:RadCartesianChart.VerticalAxis> 
     <telerik:RadCartesianChart.HorizontalAxis> 
      <telerik:CategoricalAxis></telerik:CategoricalAxis> 
     </telerik:RadCartesianChart.HorizontalAxis> 
     <telerik:SplineAreaSeries Name="xSplineArea1" CategoryBinding="XValue" ValueBinding="YValue"> 
      <telerik:SplineAreaSeries.Fill> 
       <SolidColorBrush Color="{Binding Color}"/> 
      </telerik:SplineAreaSeries.Fill> 
     </telerik:SplineAreaSeries> 
     <telerik:SplineAreaSeries Name="xSplineArea2" CategoryBinding="XValue" ValueBinding="YValue"> 
      <telerik:SplineAreaSeries.Fill> 
       <SolidColorBrush Color="{Binding Color}"/> 
      </telerik:SplineAreaSeries.Fill> 
     </telerik:SplineAreaSeries> 
    </telerik:RadCartesianChart> 

CODE:

public class ChartDataClass 
{ 
    public double XValue { get; set; } 
    public double YValue { get; set; } 
    public Color Color { get; set; } 
} 

     List<ChartDataClass> list1 = new List<ChartDataClass>(); 

     for (int i = 0; i < 20; i++) 
     { 
      ChartDataClass c = new ChartDataClass(); 
      c.XValue = i; 
      c.YValue = rand.NextDouble() * 100; 
      c.Color = Colors.Blue; 
      list1.Add(c); 
     } 

     xRevChart.Series[1].ItemsSource = list1; 

回答

0

使用轉換器返回你需要結合的東西。

這是一個欺騙的問題,我認爲:How do I convert a Color to a Brush in XAML?

+0

我可以理解'<的SolidColorBrush顏色=「{結合YourColorProperty}」 />'的工作原理相同的轉換器,但在XAML中已經聲明,所以我覺得這不是轉換問題。糾正我,如果我錯了。謝謝! – 2013-02-21 01:43:43