2010-04-22 4 views
1

J'ai un contrôle utilisateur WPF qui doit valider certains champs. Il est lié à une classe implémentant IDataErrorInfo. Lorsque je définis le contrôle utilisateur comme le contenu de mon ContentPresenter dans une autre fenêtre déjà ouverte, la validation se produit et les messages d'erreur sont renvoyés. Toutefois, je ne reçois aucun élément de validation, par exemple. le contour rouge par défaut.Validation WPF avec ContentPresenter

Si j'entre le champ et le quitte (en déclenchant une nouvelle validation), l'indicateur de validation apparaît.

En outre, si je montre le contrôle de l'utilisateur dans sa propre fenêtre, il montre l'adorer de validation immédiatement.

(j'utilise Caliburn IResults pour faire en dessous, par exemple Show.Dialog<VM>(); mais je soupçonne que ce n'est pas lié)

Quelqu'un peut-il proposer toute suggestion pourquoi les adorners de validation ne sont pas immédiatement apparaissent. (Je l'avais deviné l'animation sur mon ContentPresenter ContentChanged, cependant, j'ai enlevé cela et encore l'expérience du problème.

grâce, Chris

+0

Utilisez-vous .NET 3.5, ou 4? Je veux dire que ceci " bug "est fixé dans WPF 4, mais je ne peux pas dire avec certitude.Pouvez-vous fournir un code source et je vais l'essayer dans .NET 4? – Brent

+0

Brent - vous avez raison - Je me suis essayé avec 4 et c'était bien , alors que 3,5 di ne fonctionne pas. Avez-vous des suggestions pour une solution de contournement avec 3.5, ou devrais-je mettre à niveau. Merci beaucoup - avez passé trop de temps à essayer de résoudre ce problème. http://dl.dropbox.com/u/120257/ValidationSample.zip – Chris

+0

Je ne connais pas de solution de rechange autre que de consulter ce post ... http://forums.lhotka.net/forums/p /8573/40940.aspx J'ai regardé votre code source et j'ai vu le même problème que vous aviez. Personnellement, je voudrais mettre à niveau vers .NET 4 plutôt que d'implémenter une solution de contournement, mais c'est juste moi. Bonne chance! – Brent

Répondre

1

Ceci est un bug connu qui existe dans .NET 3.5. Vous pouvez être en mesure pour implémenter un workaround, cependant si c'est faisable, je recommanderais la mise à niveau à .NET 4 car ceci s'occupera de votre problème avec la validation

Questions connexes