Hi,
On a form I have 4 UltraCombos (2 x product code, product name) bound to a 2 properties (product1 code, product2 code) on a entity. The combos' data source is made of 20k product records. The combos are bound to 2 bindingsources, one for product1, the other for product2.
The editing form load extremely slow when the two properties on the entity is bound using DataBindings to the combo's values.
What can I do to speed it up?
The form is created only once, when the app is started. The products list is bound to the BindingSources at the same time. The form is shown only when the user add a new entit, or modifies an existing one.
I'm a little fuzzy on exactly how you have thing set up. You say you have 4 UltraCombos bound to 2 properties? How does that work? The other two combo's are unbound?
When you say ' bound' are you referring to the list? Or are you binding the Value or Text property on the control? If the latter, does not binding the ValueText make any difference to the performance?
Does the form load faster if you don't bind the Combos, but still load the data from the data source?
Are you handling any events on the combos?
Have you read the WinGrid Performance Guide? UltraCombo is derived from the same base class as UltraGrid, so many of the same performance issues apply.
Also, what version are you using?
Hi Mike,
I have 2 sets of combos: cboProductCode and cboProductName, both of them have data binding to the entity's ProductCode property:cboProductCode.DataBindings.Add("Value", _entityBindingSource, "ProductCode"); cboProductName.DataBindings.Add("Value", _entityBindingSource, "ProductCode");
I have also tried binding the cboProductCode to the entity's property and the cboProductName to cboProductCode's value: cboProductCode.DataBindings.Add("Value", _entityBindingSource, "ProductCode");cboProductName.DataBindings.Add("Value", cboProductCode, "Value");
The combos have the data source a binding source which is linked to a list of 20k records. When I say "bound" I mean the data source of the control is linked to a BindingSource which is linked to a list.
I don't see any difference in loading the form when the property has a data binding to combo or not. If the _productBindingSource is not linked to the list of records the form load instantly.
I am not handling any events on the combos. I am using the last version of controls, 12.2.20122.2027, on .NET Framework 4.0 Client Profile. Also my computer is quite new: a i5-3550 processor, a intel 330 SSD and 4GB of RAM.
And I have read the WinGrid Performance Guide on the day you have published it, and any time I get into performance issues in my apps.
i used version 13.1 and still the problem there
Hello Esam,
Could you please explain more deeply what is your issue. Do you have performance issue when you try to load your 100 000 items in the combo, or when you try to dropdown the list with items for a first time or maybe you have performance issue when you are using AutoCompleteMode.
Did you try to implement multiple threads or backgroundworker into your application to solve the problem with application`s hang up
Let me know if you have any questions.
Regards
ok , this is my scenario exactly :
I have DataTable already Filled with about 75K item and this table have three columns ,
when i load the form i start a thred just to databind the table to the cobmobox
event its in thread its hangs the controls in form and takes 2-5 seconds to respond ,
and its have autocomplete = suggesAppend
and after loading i feel its heavy to respond for filtering
I try to reproduce your scenario in a small sample. In the sample I`m using Background worker for the first UltraCombo controls and multiple threads for the second UltraCombo control.
Please take a look at the attached video file and sample for more details and let me know if you have any questions. If you think that I didn`t reproduce your scenario, please feel free to modify this sample to reproduce your issue and revert it back to me. I`ll be glad to research it for you.
This is the video file
This is the sample