2010-05-31 6 views
0

que je fais une application Microsoft Surface et j'ai ce problème:WPF: Rafraîchissant les UserControls après les changements

J'utilise le MVVM-modèle. Lorsqu'un utilisateur place sa carte d'identité (avec une étiquette) sur la surface, cet utilisateur est défini comme "utilisateur actuel". En appuyant sur un bouton, l'utilisateur peut modifier son adresse et d'autres choses. On lui montre un bouton "save" et un bouton "exit" ensuite. RelayCommands permet d'enregistrer les modifications dans la base de données ou d'ignorer les modifications. Ainsi, lorsque ces boutons sont affichés en premier, ils sont inactifs et vous ne pouvez pas cliquer dessus car l'utilisateur actuel qui est CommandParameter pour les commandes-boutons est toujours nul pour le moment. Un instant plus tard, lorsque l'application reconnaît que l'utilisateur actuel n'est plus nul, le bouton reste inactif, mais lorsque vous quittez l'application pendant un moment et y revenez (comme avec le bouton Microsoft sur le clavier), vous pouvez voir que le bouton est actif alors. Donc je pense que j'ai besoin d'une possibilité de "rafraîchir" les UserControls.

Comment puis-je le faire?

Répondre

1

Je pense que vous devriez forcer l'évaluation de "CanExecute" sur les commandes lorsque l'utilisateur actuel change de valeur (généralement sur le setter). Selon votre implémentation de l'ICommand, vous devriez avoir une méthode ou un événement à demander pour réévaluer l'état de CanExecute.

HTH

+0

oui cela devrait ressembler à; e.CanExecute = CurrentUser! = Null; – Faisal

+0

Semble fonctionner. Merci! – sofri

Questions connexes