I have a bunuch of styles in App.xaml. In just about each, I have this trigger. It enabled the element (Textbox, checkbox, listbox, etc) when the user clicked Edit, AND, if the use has rights. It works well.
hi i have problem load usercontrol in background worker,can anyone help me?
this is my code
Private Sub bwstartup_DoWork(sender As Object, e As DoWorkEventArgs) Handles bwstartup.DoWork
'load some data
Private Sub bwstartup_ProgressChanged(sender As Object, e As ProgressChangedEventArgs) Handles bwstartup.ProgressChanged
loadingbar.Value = e.ProgressPercentage
Private Sub bwstartup_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs) Handles bwstartup.RunWorkerCompleted
the problem is:
its work on reportprogress(15) to reportprogress(20)
but then freeze until completed LoadUserControl2
so reportprogress(30) is not showing.
i create application with have some inputform/window
on my button if i call inputform.show the ui is freeze for 0.xx second
cause it have many control inside
so i try to preload the inputform/window n put progressbar to show
to the user.
What do you mean by "preload"? Are you creating a lot of controls? If so, you really need to rethink your form design. If you're loading a lot of data into these controls, again, you really need to rethink your form design. For example, there is no point in loading 100,000 items into a dropdown list. No user will ever put up with using that.
"preload",i mean is load the modul/window in background at starting program
i can't rethink my form design.cause its not have many control maybe below 20,but every control have to
load data from server so it takes time to completed.
if i do like that, then every time user typed in textbox,its need to open connection to the server and search the matching text and user needs to tab to search again in dropdownlist.
i think this is not effective... cause it will have problem if the connection is not stable
Yeah, and that's the only method that's really going to work for you. Pre-loading the control with tens of thousands of records takes time. There is no way to speed it up and the problem only gets worse with more and more data over time.
You have no choice but to filter the records some how.
Listen to Dave, take the first 2-3 (I usually use 3) characters from the user to filter the query to the database, I have found that 3 characters almost always reduces the data load to a manageable volume.
I use a textbox and a button so the user enters a filter and then clicks the button, there is no doubt the result is a filter view of the data. The idea of loading 10k records is ludicrous.
Never underestimate the power of human stupidity -
I'm old. I know stuff - JSOP
10k record i think is not too much,if i load it in async only takes about 2-3 second.
then the user can search it locally.
if i use textbox and button.it will always reconnect to server for the query.it will slower the input
The dictionaries are the one case re: generalizations about "record counts".
The Xml refers to the case where users create "object graphs"; serializing / deserializing graphs as xml is simpler that writing / reading a bunch of related records. The end results is the same: collections of data (for data templating), or data and uc's for more complex list views.
And I do "virtualization" when necessary: I may have 20,000 (data) records loaded, but since I know my "view port size" and "position", I can create controls on the fly as the user is scrolling (async again). The performance depends on "preloading" because the user can also hyperlink with no lag.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
Then the loading is not done a separate thread, or the synchronization isn't done well. Dave has a point, you don't show 10k records in a dropdown, as the scrolling would be awful. You have a point that for a fast tekst search, you preload it - it's not like it's a lot of data.
There's some differences between WinForms and WPF, so can't help there; but I'd not be reporting progress with constants that indicate little; I'd be counting items and updating the progressbar every 250ms.
It's a shortcut to give "partial" progress with constants, and it smells.
Bastard Programmer from Hell
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
Last Visit: 31-Dec-99 19:00 Last Update: 9-Dec-22 16:33