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;
  }

ChartClass

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

今のところ、いくつかのテスト データを渡すだけですが、最終的には、日付範囲の各日について、3 つの垂直列を持つグラフを実現しようとしています。以下の画像のように:

グラフをどのように表示したいか

ただし、何らかの理由で、コントロールが読み込まれるときに、ラベル付きの Orion 以外の列のデータが入力されません。xaml から Orion シリーズを削除し、TimeKeeper と AccessCard のみを定義すると、TimeKeeper シリーズは機能しますが、AccessCard データは表示されません。最初に定義されたシリーズにのみバインドされているようで、チャート内の他のすべてのシリーズのバインドは無視されます。Silverlight ツールキットは、私がしようとしていることをサポートしていませんか?

誰でも私を助けてもらえますか?または、少なくとも例の方向に向けてください。私は自分がやったことで何か悪いことを見つけることができないようです。

前もって感謝します。

4

1 に答える 1

0

申し訳ありませんが、シリーズ [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 に答える