2013-02-21 70 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