This is a migrated thread and some comments may be shown as answers.

SeriesMapping ItemsSource Redraw/Flicker problem

4 Answers 130 Views
Chart
This is a migrated thread and some comments may be shown as answers.
Greg
Top achievements
Rank 1
Greg asked on 31 Mar 2011, 03:48 PM
Hi,

With the addition of the ItemsSource on a SeriesMapping we were finally able to extend your chart control to support binding to multiple collections in an underlying view model.

This is great, and has helped the chart control to start to become viable. However, it seems that every time a new data point is added to the collection bound to a SeriesMapping.ItemsSource, the entire series redraws.

This is with AutoRange set to false for both X and Y Axis and Min/Max values set for both. I can watch the chart, and while the scale never changes, each series blanks out and redraws with each new data point.

Is this fixable with the current release?

4 Answers, 1 is accepted

Sort by
0
Evgenia
Telerik team
answered on 05 Apr 2011, 04:22 PM
Hello Greg,

Currently when new element is added to the ItemsSource collection of the RadChart's SeriesMapping all Series redraw themselves. This is known issue for us and our developers are already after it. Better implementation of the SeriesMapping's ItemsSource feature will be available in future so stay tuned.
We are sorry for the inconvenience this may have caused.

Kind regards,
Evgenia
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
0
James
Top achievements
Rank 1
answered on 11 Apr 2012, 03:19 PM
Evgenia,

Has this problem with flickering been resolved yet?  I have the problem with 3D charts, but it does not seem to happen with the 2D charts.  If it has then which version was it fixed?  I am currently using version 2010.2.10.806.  When updating with new data I pass a DataTable to the ItemSource collection as seen below and for every update the chart flickers.

public void OnDataUpdate(DataTable data)
{
   try
   {
      mChartControl.Dispatcher.Invoke(new Action(delegate() { mChartControl.ItemsSource = data; } ));
   }
   catch {}
}

Thanks,

James
0
Peshito
Telerik team
answered on 16 Apr 2012, 01:37 PM
Hello,

I tried to reproduce a similar scenario as yours with our latest official release and the application worked well. Could you give your app a try with the latest official release(Version 2012.1.326.40 ) and confirm if the issue still appears. I would also recommend you to take a look at our Performance Tips and Tricks topic as it might help you in resolving the issue.

Alternatively you may check out our new RadChartView control which is designed with performance in mind and I am sure you would be pleased with the results.

Hope this helps.

All the best,
Peshito
the Telerik team

Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>

0
James
Top achievements
Rank 1
answered on 20 Apr 2012, 02:18 PM
I wanted to give an update to this problem with the resolution that was found to resolve it.  After a coworker of mine took a look at this problem and hacked around with some different ideas he found the two methods SuspendNotifications() and ResumeNotifications(). Apparently the SuspendNotifications() method stops all events caused by the data update until the data has been set and then the ResumeNotifications() method allows the proper events to take place with all data in place to drive those events.  Once these methods were called the flicker was all but removed.

mChartControl.DefaultView.ChartArea.DataSeries.SuspendNotifications();
mChartControl.ItemsSource = data;
mChartControl.DefaultView.ChartArea.DataSeries.ResumeNotifications();

I hope this helps others that are looking to resolve this problem.

James

Tags
Chart
Asked by
Greg
Top achievements
Rank 1
Answers by
Evgenia
Telerik team
James
Top achievements
Rank 1
Peshito
Telerik team
Share this question
or