0

我正在努力弄清楚为什么我对多个系列柱形图的绑定不起作用。从我能够通过网络上的示例看到的内容来看,我看不出我所做的逻辑有任何问题,但也许我错过了一些东西。据我所知,它是受支持的。

这是我的图表控件:

<toolkit:Chart x:Name="myChart" Margin="10">
            <toolkit:ColumnSeries 
            Title="Orion"
            IndependentValueBinding="{Binding Date}"
            DependentValueBinding="{Binding Orion}"
            AnimationSequence="FirstToLast">
            </toolkit:ColumnSeries>
            
            <toolkit:ColumnSeries                 
            Title="Access Card"
            IndependentValueBinding="{Binding Date}"
            DependentValueBinding="{Binding AccessCard}"
            AnimationSequence="FirstToLast">
            </toolkit:ColumnSeries>

            <toolkit:ColumnSeries                 
            Title="Time Keeper"
            IndependentValueBinding="{Binding Date}"
            DependentValueBinding="{Binding TimeKeeper}"
            AnimationSequence="FirstToLast">
            </toolkit:ColumnSeries>

        </toolkit:Chart>

这是我正在尝试实现的一些测试代码:

private void OrionWebService_ChartComilerCompleted(object sender, ChartCompilerCompletedEventArgs e)
  {
     List<ChartClass> mytest = new List<ChartClass>();
     mytest.Add(new ChartClass
                   {
                      Date = Convert.ToDateTime("01/01/2013 12:00:00 PM"),
                      Orion = 3.0,
                      AccessCard = 4.0,
                      TimeKeeper = 6.0
                   });

     mytest.Add(new ChartClass
                   {
                      Date = Convert.ToDateTime("01/02/2013 12:00:00 PM"),
                      Orion = 6.0,
                      AccessCard = 4.0,
                      TimeKeeper = 8.0
                   });

     ((ColumnSeries)myChart.Series[0]).ItemsSource = mytest;
     BusyIndicator.IsBusy = false;
  }

图表类

    public class ChartClass
   {
      public DateTime Date { get; set; }
      public double Orion { get; set; }
      public double AccessCard { get; set; }
      public double TimeKeeper { get; set; }
   }

现在我只是通过一些测试数据,最终虽然我试图在日期范围内的每一天实现一个具有 3 个垂直列的图表。类似于下图:

我希望我的图表看起来像什么

出于某种原因,尽管当控件加载时,除了一个 Labeled Orion 之外,它没有填充任何列的任何数据。如果我从 xaml 中删除 Orion 系列并仅定义 TimeKeeper 和 AccessCard,则 TimeKeeper 系列可以工作但不显示 AccessCard 数据。它似乎只绑定到第一个定义的系列,而忽略了图表中所有其他系列的绑定。silverlight 工具包是否不支持我正在尝试做的事情?

谁能帮助我?或者至少为我指出一个例子的方向。我似乎找不到我所做的任何错误。

提前致谢。

4

1 回答 1

0

抱歉,我发现问题是在 Code behind 中引起的,因为我只定义了 series[0] 的项目源,而不是其他项目源。使用以下代码解决了问题:

((ColumnSeries)myChart.Series[0]).ItemsSource = mytest;
((ColumnSeries)myChart.Series[1]).ItemsSource = mytest;
((ColumnSeries)myChart.Series[2]).ItemsSource = mytest;

不漂亮,但我的图表现在工作正常

于 2013-01-07T16:15:18.353 回答