Dans WPF, quelle est l'équivalent de Suspend / ResumeLayout () et BackgroundWorker () à partir de Windows Forms
Si je suis dans une fonction dans le code derrière, et je tiens à mettre en œuvre l'affichage d'un "Chargement..." dans la barre d'état suivants du bon sens, mais comme nous le savons de WinForms est un NoNo:
StatusBarMessageText.Text = "Loading Configuration Settings...";
LoadSettingsGridData();
StatusBarMessageText.Text = "Done";
Ce que nous tous maintenant de WinForms Chapitre 1 de la classe 101, est la forme de ne pas afficher les modifications de l'utilisateur jusqu'à ce que après l'Ensemble de la Fonction complète... ce qui signifie le message "Chargement" ne sera jamais affichée à l'utilisateur. Le code suivant est nécessaire.
Form1.SuspendLayout();
StatusBarMessageText.Text = "Loading Configuration Settings...";
Form1.ResumeLayout();
LoadSettingsGridData();
Form1.SuspendLayout();
StatusBarMessageText.Text = "Done";
Form1.ResumeLayout();
Quelle est la meilleure pratique pour aborder cette question fondamentale dans WPF?
source d'informationauteur mrbradleyt
Vous devez vous connecter pour publier un commentaire.
Meilleur et le plus simple:
Ou
Dans la lecture de l'article par Shawn Wildermuth WPF Threads: Construire Plus d'Applications Sensibles Avec Le Répartiteur.
Je suis tombé sur le suivant, qui indique que vous pouvez utiliser l'arrière-plan du travail comme dans WindowsForms. Fantaisie:
La manière la plus simple de ce travail est d'ajouter la LoadSettingsGridData pour le répartiteur de la file d'attente. Si vous définissez le fonctionnement du DispatcherPriority suffisamment assez faible, la mise en page les opérations vont se produire, et vous serez bon d'aller.