BeginUpdate doesn't work at all when datasource items get changed. Even though BeginUpdate is called the grid takes awfully lot of time to process changes.
Steps to Reproduce:
I have a situation like this. List<MyObject> is a DataSource. Each change to MyObject property raises OnPropertyChanged event.
Now, even if I call BeginUpdate and then change some 100 properties of an object the grid is slooooow. Slow measured in seconds, like dog slow.
So I went profiling the code and here is the culprit:
IDataControllerValidationSupport.OnControllerItemChanged gets fired each time a property is modified and consumes awful lot of time.
If I omit my internal call to OnPropertyChanged the grid becomes lightning fast.
Actual Results:
Dog slow.
Expected Results:
Fast as a bullet.
We have closed this ticket because another page addresses its subject:
Support methods for block data notifications
Hello Miha,
The BeginUpdate method doesn't block data notifications. We will add BeginDataUpdate / EndDataUpdate methods similar to the XtraGrid. Thank you for drawing our attention to this issue.
Thank you,
Nick
Nick: Yes, obviously :-)
In the meantime, here is a workaround:
http://cs.rthand.com/blogs/blog_with_righthand/archive/2007/08/24/Make-XtraVerticalGrid-fast-as-a-bullet.aspx
Miha,
Thanks for your article. Your solution is good. I'd also call the OnDataManager_ListChanged method with the ListChangedType.Reset parameter from EndUpdate in the inherited class.
Thank you,
Nick