IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

[Validation] il manque quelque chose ?


Sujet :

Windows Presentation Foundation

  1. #1
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut [Validation] il manque quelque chose ?
    Bonsoir !

    J'avance toujours sur mon projet WPF et j'en arrive a "checker" les formulaires donc venant d'asp.net je me dis bon alors ou sont les validators ?

    en cherchant un peu je suis tombé sur des trucs jolie :

    http://infosysblogs.com/microsoft/20...idation_i.html

    mais vraiment pas top dans l'implémentation ...

    Donc voila je suis venu recueillir vos "Best practice" en terme de validation

    merci

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Et c'est quoi la question ?

  3. #3
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Salut,

    Pour ce qui est de la validation, tu as l'article de Paul Stovell's (tu as le lien dans ton article). Il est plutôt pas mal (tu l'as peut-être vu). Après il y a toujours les MaskedTextBox et ErrorProvider que l'on utilisait déjà en WindowsForm.

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    De plus, avec .NET 3.5, tu as l'interface IDataEffortInfo donc je vois pas ce que tu veux de plus...

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Euh... IDataEffortInfo, Google trouve rien à part la page indiquée par anthyme
    C'est pas plutôt IDataErrorInfo ? Mais dans ce cas ce n'est pas nouveau en 3.5, ça existe depuis la 1.0.

  6. #6
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par tomlev Voir le message
    C'est pas plutôt IDataErrorInfo ? Mais dans ce cas ce n'est pas nouveau en 3.5, ça existe depuis la 1.0.
    Vi, c'est ca mais avant, en WPF, c'était pas exploité

  7. #7
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    Citation Envoyé par Thomas Lebrun Voir le message
    Et c'est quoi la question ?
    Bin

    Citation Envoyé par anthyme Voir le message
    Donc voila je suis venu recueillir vos "Best practice" en terme de validation
    En gros "Quel sont vos technique de validation de formulaire en WPF ?"

    Citation Envoyé par Thomas Lebrun Voir le message
    De plus, avec .NET 3.5, tu as l'interface IDataEffortInfo donc je vois pas ce que tu veux de plus...
    un concept de validator à la asp.net associable aux contrôles et que l'on assembler par groupe.

    Citation Envoyé par tomlev Voir le message
    Euh... IDataEffortInfo, Google trouve rien à part la page indiquée par anthyme
    C'est pas plutôt IDataErrorInfo ? Mais dans ce cas ce n'est pas nouveau en 3.5, ça existe depuis la 1.0.
    Mais c'est vraiment çà que vous utilisez sur vos projets ?
    Bon je vais aller regarder plus en détail, merci pour vos réponses

  8. #8
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Ce que j'utilise pour faire de la validation, c'est ce qu'on trouve là: http://www.codeproject.com/KB/WPF/wpfvalidation.aspx

    Ca marche bien et j'ai pas à m'en plaindre.

    Après, tu peux trouver des implémentations de l'ErrorProvider WindowsForms en WPF:
    http://www.codeproject.com/KB/WPF/wpfErrorProvider.aspx
    http://www.codeplex.com/ErrorProvidersForWpf

    Mais bon, perso, j'accroche pas....

  9. #9
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Citation Envoyé par Thomas Lebrun Voir le message
    http://www.codeplex.com/ErrorProvidersForWpf

    Mais bon, perso, j'accroche pas....
    et pourquoi tu accroches pas ? a part que c'est qu'une version 0.0.0.1 Alpha même pas compilé ?
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  10. #10
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    Citation Envoyé par Thomas Lebrun Voir le message
    Ce que j'utilise pour faire de la validation, c'est ce qu'on trouve là: http://www.codeproject.com/KB/WPF/wpfvalidation.aspx

    Ca marche bien et j'ai pas à m'en plaindre.

    Après, tu peux trouver des implémentations de l'ErrorProvider WindowsForms en WPF:
    http://www.codeproject.com/KB/WPF/wpfErrorProvider.aspx
    http://www.codeplex.com/ErrorProvidersForWpf

    Mais bon, perso, j'accroche pas....
    Celui ci a l'air mieux je vais m'y attarder, merci

    Citation Envoyé par dev01 Voir le message
    et pourquoi tu accroches pas ? a part que c'est qu'une version 0.0.0.1 Alpha même pas compilé ?
    Le lien que j'ai donné est celui ci : http://infosysblogs.com/microsoft/20...idation_i.html

    Et pourquoi je n'accroche pas ?

    et bien il crée une méthode d'extension IsValid sur les texbox (je trouve ca déjà moyen) et cette méthode n'est capable que d'une chose : vérifier si la textbox est vide ou non... si il veut vérifier autre chose il lui faudra une autre méthode et le isValid sur une autre texbox échouera si elle est vide même si tu as envie qu'elle puisse l'être...

    Bref c'est tout sauf générique et flexible !

    la partie UI est sympa par contre.

  11. #11
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par dev01 Voir le message
    et pourquoi tu accroches pas ? a part que c'est qu'une version 0.0.0.1 Alpha même pas compilé ?
    C'est pas à ton travail que j'accroche pas mais à l'idée de l'ErrorProvider en WPF: je trouve que cela n'est pas fait pour et que tout peut/doit se gérer comme expliquer dans l'article de Paul Stovell

  12. #12
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    Ah c'était de toi

    sans rancune hein

  13. #13
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par anthyme Voir le message
    sans rancune hein
    Tu le penses même pas menteur

  14. #14
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Citation Envoyé par anthyme Voir le message
    Ah c'était de toi

    sans rancune hein
    ErrorProvidersForWPF est de moi, pas l'autre

    Et avec ErrorProvider tu défini tes propres méthodes de validation réutilisable entre les différents composant ( une méthode n'est pas liée à un type de compo ) et rien ne t'empeche d'avoir une méthode qui renvoi toujours vrai ou de n'activer que certain composant.
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  15. #15
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    Ah oki

    Et bien pour moi c'est trop tard pour changer je suis partie sur les ValidationRule et je suis plutôt satisfait

  16. #16
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    Bon je suis plutôt content de ces techniques

    Mais ... J'en arrive a un problème :

    J'ai un formulaire qui permet de changer des propriétés de mon objet on dira une voiture.

    Ma voiture a des objets "Roue" dans un champ "Roues".

    Ce champ Roues je le met en item source d'une gridview.

    Cette gridview est accompagner de boutons permettant d ajouter ou retirer des roues.

    Le problème est là : il ne s'agit pas d'un binding (au sens utilisation d'un objet Binding) mais juste de charger une source dans la gridview donc je ne sais pas ou mettre ma ValidationRule (qui aura pour but de vérifier que la gridview a au moins 1 roue)

    Si quelqu'un a une idée

  17. #17
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Et pourquoi pas faire un binding entre la propriété ItemsSource de ton GridView et ton objet ?

  18. #18
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    Ah bin oui .....


    merci

  19. #19
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    Étrange la méthode de ma validationRule n'est jamais appelé (Validate) ... Je met un point d'arrêt dedans mais l'exécution n'arrive jamais ici.

    Je vous montre comment je procède :

    Le binding (value est mon objet de base, "MedicamentRecordQuantities" est la liste d'objet contenu dans la listview) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    lvMedicamentRecord.DataContext = value;
     
    Binding binding = new Binding();
    binding.UpdateSourceTrigger = UpdateSourceTrigger.Explicit;
    binding.Path = new PropertyPath("MedicamentRecordQuantities");
    binding.ValidationRules.Add(new IEnumerableValidationRule { MinimumLength = 1 });
    lvMedicamentRecord.SetBinding(ListView.ItemsSourceProperty, binding);
    Et la validation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Dictionary<FrameworkElement, DependencyProperty> forms = new Dictionary<FrameworkElement, DependencyProperty>();
    forms.Add(cbxProviderValue, ComboBox.SelectedItemProperty);
    forms.Add(cbxRecipientValue, ComboBox.SelectedItemProperty);
    forms.Add(txtCommentValue, TextBox.TextProperty);
    forms.Add(txtReferenceValue, TextBox.TextProperty);
     
    // ICI : La listview en question
    forms.Add(ucMedicamentEditQuantityList.MedicamentRecordQuantities, ListView.ItemsSourceProperty);
     
    if (record.IsValidated)
        forms.Add(txtEditCommentValue, TextBox.TextProperty);
     
    bool valid = true;
     
    foreach (FrameworkElement form in forms.Keys)
    {
        BindingExpression binding = form.GetBindingExpression(forms[form]);
        binding.UpdateSource();
     
    //Dans le cas de ma listview c'est toujours null (normal ma validation n'est jamais appellé)
        if (binding.ValidationError != null)
            valid = false;
    }
     
    if (valid)
    {
    //Traitement sans erreur
    Voila je ne comprend pas bien pourquoi elle n'est jamais appelé alors que sur les autres bindings construit de la même façon cela fonctionne...

  20. #20
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Est-ce que le binding marche correctement au moins ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Débutant] Import CSV dans Table MDB il me manque quelque chose
    Par progscoubi dans le forum C#
    Réponses: 5
    Dernier message: 02/11/2011, 11h00
  2. [JDBC] pilotes ODBC, il me manque quelque chose...
    Par kichemans dans le forum JDBC
    Réponses: 2
    Dernier message: 27/12/2005, 18h25
  3. GEstion des types! Besoin d'aide il me manque quelques trucs
    Par popogendarme dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 03/02/2005, 18h56
  4. Réponses: 3
    Dernier message: 27/04/2004, 18h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo