2010-03-19 7 views
0

Je souhaite ajouter une barre de progression dans mon application basée sur C#. Je voudrais savoir quelle est la bonne façon de mettre à jour sa valeur lors d'événements particuliers? Mon problème est, j'ai une seule fonction dans l'interface utilisateur qui fait tout le traitement.Cette fonction à son tour appelle beaucoup plus de fonctions, crée des objets, met à jour la base de données, etc (effectue essentiellement tout le travail) et retourne les valeurs dans un fichier de sortie. J'ai accès à cette fonction seulement. Alors, comment mettre à jour la valeur de la barre de progression à la fin de chaque étape?Comment changer la valeur de progressbar en C#?

Quelle est la meilleure pratique pour ce genre de situation? Quelle est la bonne façon de séparer la logique de l'interface utilisateur et la logique métier? Je veux éviter d'écrire du code lié à la barre de progression dans mon code de bibliothèque.


S'il vous plaît suggérer une solution. Merci et Cordialement,

Répondre

3

Si vous avez une classe qui est votre «classe de travailleur» - la classe que vous appelez votre seule fonction à travers - alors vous pouvez créer une propriété Progress sur cette classe. Puis, au fil de l'opération, mettez à jour la valeur de cette propriété et lancez un événement pour indiquer qu'il a été modifié. Vous pouvez définir un événement ProgressChanged spécifique ou, si vous utilisez la liaison de données, utiliser l'interface INotifyPropertyChanged. Puis, dans votre interface utilisateur: utilisez la liaison de données ou écoutez spécifiquement cet événement et mettez à jour la barre de progression en conséquence.

+0

Merci beaucoup pour cette réponse détaillée. Je pense que l'idée d'utiliser l'événement fonctionnera. Merci encore !!! – Shekhar

Questions connexes