Comment afficher les avertissements utilisateur de la même manière que les erreurs. La seule différence est que le contrôle, par ex. TextBox doit avoir un modèle d'erreur différent et similaire à Validation.HasError il doit y avoir un Validation.HasWarning. En d'autres termes, tous les problèmes de validation ne sont pas des "erreurs" (au moins dans notre application). Nous voulons indiquer visuellement si quelque chose est un avertissement ou une erreur.Styles d'erreur et d'avertissement séparés WPF
Répondre
J'ai parfois besoin d'un terrain d'entente. Comme Command
s qui ont besoin de 3 valeurs de CanExecute
plutôt que true
ou false
. En ce qui concerne les avertissements qui fonctionnent comme une validation, je ne connais pas toutes les pièces dont on aurait besoin, mais je pense savoir comment on pourrait commencer.
Vous devez vous appuyer sur les propriétés attachées et les comportements attachés (propriétés jointes qui s'abonnent aux événements sur l'objet et effectuent des opérations liées à ces événements lorsqu'ils se déclenchent). Vous pouvez en avoir un qui gouverne une collection d'objets ValidationRule
à utiliser pour déterminer si un avertissement est émis ou non, un peu comme le font les propriétés Validation
. Vous pouvez en avoir un appelé HasWarning
qui est défini ou désactivé par la validation qui peut être référencée dans les déclencheurs de style/modèle.
Vous pouvez faire l'affichage d'avertissement partie du modèle de chaque contrôle, ou vous pouvez à nouveau mimétique Validation
et une WarningTemplate
propriété jointe qui est utilisé pour placer les informations d'avertissement dans un AdornerLayer
.
Depuis des objets personnalisés ValidationRule
retourner un objet ValidationResult
dans lequel le ErrorContent
est tout simplement un objet, et cet objet est également exposé dans les ValidationError
objets que ErrorContent
, vous pouvez aussi être en mesure d'utiliser la validation régulière après tout. Vous pourriez éventuellement utiliser une classe comme objet ErrorContent
qui a une propriété ErrorType
d'Avertissement ou d'Erreur et lier à celle-ci dans votre ErrorTemplate
. Je ne suis pas sûr si avoir ValidationError
présent empêcherait certaines opérations (telles que les pressions de boutons) que vous souhaiteriez autoriser, mais une sorte de proxy sur le ViewModel pourrait être créé qui juge le ErrorType
.
- 1. WPF Triggers et styles
- 2. Styles et info-bulles WPF Question
- 3. WPF: Styles pas appliqué
- 4. Héritage/prépondérants styles WPF
- 5. WPF/Silverlight Styles conditionnels
- 6. WPF - Styles avec propriétés personnalisées
- 7. WPF Articles de menu Styles
- 8. Réutilisation des styles WPF intégrés
- 9. WPF Styles Button MouseOver Question
- 10. styles WPF: différence entre x: Nom et x: Type
- 11. Liaison de données WPF et styles avec MVVM
- 12. Silverlight et WPF Stockage des styles dans une DLL distincte
- 13. Styles de concaténation dans SL 4/WPF?
- 14. Styles WPF pour TabControl/TabPanel/TabItem
- 15. Bibliothèque de styles de quai WPF iGoogle
- 16. Styles de blocage de contrôle utilisateur wpf
- 17. Problème de styles globaux WPF avec .Net4
- 18. Application de styles WPF aux éléments enfants
- 19. Question sur WPF Ressources/Styles & Scope
- 20. styles et modèles
- 21. JQuery - divs et styles
- 22. WPF largeur de la colonne de partage entre réseaux séparés
- 23. Styles de cellules séparées - Possibilité
- 24. joomla, séparés lire plus et intro texte
- 25. Objets séparés pour IE et FF
- 26. Service Windows et minuteries - processus séparés?
- 27. Caractère et numéro séparés en javascript
- 28. wpf définition de propriétés personnalisées pour les styles
- 29. wpf templates styles usercontroles Quelles sont les relations entre?
- 30. WPF Certains styles ne sont pas appliqués aux contrôles DataTemplate
+1 pour l'observation que 'ErrorContent' est un objet, pas une chaîne. C'est un moyen très simple d'accomplir cela. Vous venez de créer une classe de message avec des sous-classes d'erreur, d'avertissement et d'information, et un 'DataTemplate' pour chaque type. –