実行時に作成されたSilverlight 4のグラフにはデータが表示されません

Silverlight 4ツールキットのチャートコントロールを使用して、実行時にグラフを100%作成しようとしていますが、XAMLのどこにもその証拠はありません。これを行うには、ページが読み込まれるときに空のグラフを作成します。

        Chart TrendChart = new Chart();
        TrendChart.Name = "TrendChart";
        TrendChart.Title = "Call History";
        TrendChart.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Stretch;
        TrendChart.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
        TrendChart.VerticalAlignment = System.Windows.VerticalAlignment.Stretch;
        TrendChart.VerticalContentAlignment = System.Windows.VerticalAlignment.Stretch;

        GridPanel.Children.Add(TrendChart);

ユーザーがボタンをクリックしてデータを取得すると、このカスタムクラスのリストが作成されます。

    private class PhoneTrendDataPoint
    {
        public string XValue { get; set; }
        public double YValue { get; set; }
    }

CurrentCallTrendsというListをChartのItemsSourceとして使用します。

       //Update the chart with the received data
        Chart TrendChart = (Chart)this.FindName("TrendChart");

       //Wipe out previous chart data
        TrendChart.Series.Clear();



       //set the data
        ColumnSeries columnSeries = new ColumnSeries();
        columnSeries.Name = "Current Call Volume";
        columnSeries.ItemsSource = CurrentCallTrends;
        //columnSeries.SetBinding(ColumnSeries.ItemsSourceProperty, new Binding("CurrentCallTrends"));
        columnSeries.DependentValueBinding = new Binding("XValue");
        columnSeries.IndependentValueBinding = new Binding("YValue");
        TrendChart.Series.Add(columnSeries);

問題は、オブジェクトのインスタンスに設定されていないオブジェクト参照に関するデバッガを開くように要求するランタイムエラーが発生することです。私が行を.SetBindingにコメントすると、ItemsSourceは消滅し、データは表示されませんが、少なくとも実行時エラーはありません。

私は何が欠けていますか?

0
私はこれをクラスのトップに宣言しました。これは次のとおりです。プライベートList CurrentCallTrends =新しいList ();
追加された 著者 Bill Sambrone,
CurrentCallTrends とは何ですか?
追加された 著者 ChrisF,

1 答え

追加のグーグルの後、私は動作するように見えるが、これを行う最善の方法として私を攻撃しないいくつかの変更を加えました。データが表示されるようになりましたが、より良い方法がない限り、これを答えとして受け入れません:

       //Update the chart with the received data
        Chart TrendChart = (Chart)this.FindName("TrendChart");

       //Wipe out previous chart data
        TrendChart.Series.Clear();


       //test data
        KeyValuePair[] CurrentCallData = new KeyValuePair[CurrentCallTrends.Count];
        for (int i = 0; i < CurrentCallTrends.Count; i++)
        {
            CurrentCallData[i] = new KeyValuePair(CurrentCallTrends[i].XValue, CurrentCallTrends[i].YValue);
        }



       //set the data
        ColumnSeries columnSeries = new ColumnSeries();
        columnSeries.Name = "CurrentCallVolume";
        columnSeries.Title = "Current Call Volume";
        columnSeries.SetBinding(ColumnSeries.ItemsSourceProperty, new Binding());
        //columnSeries.ItemsSource = CurrentCallTrends;
        columnSeries.ItemsSource = CurrentCallData;
        columnSeries.DependentValueBinding = new Binding("Value");
        columnSeries.IndependentValueBinding = new Binding("Key");
        TrendChart.Series.Add(columnSeries);

        //this.DataContext = CurrentCallTrends;
0
追加された