Hello,
We are trying to set up a hierarchical ultragrid with a dynamic datasource and the result is extremely slow to move between rows, either using the up/down arrow or the mouse. Basically the ActivateRow event is slow.
We set up the dynamic datasource using a ITypedList and a custom PropertyDescriptor.
The problem seems to be that the grid is constantly asking the "GetValue" of the objects, every activaterow seems to call the getvalue on all the visible cells, even scrolling left/right/up/down causes the getvalue on a lot of properties.
Maybe we are doing something wrong or something that is not supported.
A very simple example in attachment. Our real example has a lot more properties and has more complex code in the GetValue so the delay is a lot higher, however, this example still shows a noticeable delay.
Any help would be appreciated !
Kind regards,
Michael
PS: We are using version 11.1.20111.2042
UltraGrid calls GetValue in order to ensure that the displayed value is up-to-date when customer needs it. In your sample I have replaced UltraGrid with DataGridView (ordinary MS grid control) and the sample works on the same way. Please see the attached sample. The best thing what you could do is setting LoadStyle to LoadOnDemand.
Please let me know if you have any further questions.
Hey,
Thanks for your input, but I don't think that the LoadStyle would make any difference. As far as I know, the LoadStyle manages how the rows are loaded, and would not have any influence on the GetValue. The initial loading of the rows isn't really an issue.
No need for further assistance, thank you. We replaced the type of the subcollections with an IList. This results in a performant solution; in contrast with the situation where we used the ITypedList implementation for the subcollections. But a "side effect" is that we loose some binding resulting in us using the grid refresh on a row (including descendant rows) after moving/deleting/adding an item from/to the collection or a refresh when updating a cell that triggers an update of other dependant properties. But for that I kinda follow your philosophy (read it a couple of times in other topics): changes to grid are caused by the user, if you (as a programmer) causes a change you should take this into account yourself by triggering the appropriate events/code :-).
Thank you for your assistance and follow-up.
Hello,
I am just checking about the progress of this issue. Let me know If you need my further assistance on this issue?
Thank you for using Infragistics Components.
Here is a link to our online documentation for the LoadStyle Property :
http://help.infragistics.com/Help/NetAdvantage/WinForms/2011.1/CLR2.0/html/Infragistics2.Win.UltraWinGrid.v11.1~Infragistics.Win.UltraWinGrid.UltraGridLayout~LoadStyle.html
About GetValue, this is because of the conception of the binding and if we change this, it will cause incorrect displaying of the data in our UltraGrid.