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 :

Activer un bouton de validation si un formulaire est valide


Sujet :

Windows Presentation Foundation

  1. #1
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut Activer un bouton de validation si un formulaire est valide
    Bonjour,

    soit un formulaire contenant deux champs qui sont bindés et validés par des "ValidationRule".
    Pour "envoyer" le formulaire il y a un bouton "OK" qui est par défaut désactivé.

    Comment faire pour l'activer quand les deux champs du formulaire sont valides ?

    Pour le bouton ça devrait donner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <wpf:Button Name="formOKButton" Content="OK"  Click="OKButtonClicked" IsEnabled="False">
    	<wpf:Button.Triggers>
    	  <wpf:MultiTrigger>
    		<wpf:MultiTrigger.Conditions>
    			<wpf:Condition Property="" Value="" />
    			<wpf:Condition Property="" Value="" />
    		</wpf:MultiTrigger.Conditions>
    		<wpf:Setter Property="IsEnabled" Value="True" />
    	  </wpf:MultiTrigger>
    	</wpf:Button.Triggers>
    </wpf:Button>
    Mais que mettre dans les conditions ?


    Merci.
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  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
    Tu as essayé avec un convertisseur à valeur multiples ? (IMultiValueConverter)

  3. #3
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Merci de ta réponse mais utiliser un "IMultiValueConverter" permettra d'avoir une valeur au lieu de deux et donc une seule condition dans le trigger.

    Le problème d'accéder à l'état de validation du formulaire restera le même non ?
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  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
    Citation Envoyé par seriousme Voir le message
    Merci de ta réponse mais utiliser un "IMultiValueConverter" permettra d'avoir une valeur au lieu de deux et donc une seule condition dans le trigger.
    Sauf si tu bindes la propriété IsEnabled à ton convertisseur et que, dedans, tu fais une vérif des 2 valeurs: si les 2 sont vérifiées, alors tu actives le bouton

  5. #5
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Après pas mal de tentatives voilà une méthode satisfaisante sans convertisseur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <wpf:Button Name="formOKButton" Content="OK"  Click="OKButtonClicked">
    	<wpf:Button.Style>
    		<wpf:Style TargetType="Button">
    			<wpf:Style.Triggers>
    				<wpf:DataTrigger Binding="{Binding ElementName=field1,Path=(Validation.HasError)}" Value="True">
    					<wpf:Setter Property="IsEnabled" Value="False" />
    				</wpf:DataTrigger>
    				<wpf:DataTrigger Binding="{Binding ElementName=field2,Path=(Validation.HasError)}" Value="True">
    					<wpf:Setter Property="IsEnabled" Value="False" />
    				</wpf:DataTrigger>
    			</wpf:Style.Triggers>
    		</wpf:Style>
    	</wpf:Button.Style>
    </wpf:Button>
    Attention aux parenthèses dans Merci encore.
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  6. #6
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2014
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2014
    Messages : 70
    Points : 40
    Points
    40
    Par défaut Question supplémentaire
    Bonjour,
    Le post est ancien mais très utile pour moi débutant en wfp ! Comment modifier le code pour que le bouton soit désactiver au départ par défaut puisque aucune saisie n'a été encore réalisée ?

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] [Validation] Problème lors de la validation d'un formulaire
    Par loon93 dans le forum Symfony
    Réponses: 3
    Dernier message: 22/08/2011, 20h34
  2. Réponses: 5
    Dernier message: 09/04/2008, 09h43
  3. Réponses: 13
    Dernier message: 19/04/2007, 11h36
  4. Réponses: 9
    Dernier message: 28/08/2006, 08h58
  5. Réponses: 3
    Dernier message: 29/12/2005, 16h41

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