如何刷新WinRTXamlToolkit图表以显示已更改的数据

时间:2015-03-15 17:22:04

标签: c# windows-phone-8 charts winrt-xaml-toolkit

我目前正在做一些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经验来完全理解刷新机制。

1 个答案:

答案 0 :(得分:0)

不知道这样做的正确方法,但是你可以通过在返回实际列表之前强迫ItemSource为null来绕过它。

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