1

私は現在、最初の Windows Phone 8 / XAML 実験を行っており、WinRTXamlToolkit チャート コントロールを使用しています。データを描画することはできましたが、コントロールを再描画して変更されたデータを表示するのに問題があります。

                CHART_Overview.Series.Add(_lsChartOvw);

            ((AreaSeries)CHART_Overview.Series[0]).ItemsSource = _lstLogOvw;

            LinearAxis dta = new LinearAxis();
            dta.Title = "X";
            dta.Orientation = AxisOrientation.X;
            dta.ShowGridLines = true;

            CHART_Overview.Axes.Add(dta);

            CHART_Overview.Axes.Add(new LinearAxis()
            {
                Minimum = 0,
                Maximum = 100,
                Orientation = AxisOrientation.Y,
                Interval = 20,
                ShowGridLines = true,
                Title = "Y"
            });

            Random rd = new Random((int)DateTime.Now.ToFileTimeUtc());

            for(int i = 0; i < 20; i++)
            {
                _lstLogOvw.Add(new GenericValueItem() { X = i, Y = rd.Next(1, 100) });
            }

次の更新スキームを試しました

                _lstLogOvw.Clear();
            for (int i = 0; i < 20; i++)
            {
                _lstLogOvw.Add(new GenericValueItem() { X = i, Y = rd.Next(1, 100) });
            }

            ((AreaSeries)CHART_Overview.Series[0]).ItemsSource = _lstLogOvw;

リストは ObservableCollection 型です。おそらくバインドの問題ですが、現時点では、更新メカニズムを完全に理解するための XAML の経験はあまりありません。

4

1 に答える 1

0

適切な方法はわかりませんが、実際のリストに割り当てる前に ItemSource を強制的に null にすることで回避できます。

((AreaSeries)CHART_Overview.Series[0]).ItemsSource = null;
((AreaSeries)CHART_Overview.Series[0]).ItemsSource = _lstLogOvw;
于 2015-05-02T09:43:57.900 に答える