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 :

RelayCommand Binding sur Button / disabled par défaut [MVVM]


Sujet :

Windows Presentation Foundation

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Points : 10
    Points
    10
    Par défaut RelayCommand Binding sur Button / disabled par défaut
    Bonsoir,

    J'utilise un binding sur mon bouton vers une propriété TestRelayCommand de type RelayCommand :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         <Button Content="TestRelay" Command="{Binding DatabaseCurrent.Server.TestRelayCommand}" />
    J'aimerais simplement que mon bouton ne soit pas actif tant que mon objet Server n'est pas instancié, mais je n'y arrive pas !

  2. #2
    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
    Par défaut en effet le bouton est actif.

    Pour contrer cela il faut piloter l'état via IsEnabled tant que Server n'est pas disponible :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <Window.Resources>
            <local:NullToBooleanConverter x:Key="Conv"></local:NullToBooleanConverter>
    </Window.Resources>
    ...
    <Button Content="TestRelay" Command="{Binding DatabaseCurrent.Server.TestRelayCommand}" IsEnabled="{Binding DatabaseCurrent.Server,Converter={StaticResource Conv}}" />
    Et le convertisseur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class NullToBooleanConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return value != null;
        }
     
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotSupportedException();
        }
    }
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Parfait !

    Merci

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/09/2009, 00h12
  2. Réponses: 86
    Dernier message: 27/08/2009, 15h02
  3. Macro pour imprimer sur "l'imprimante par défaut"
    Par Balboa24 dans le forum VBA PowerPoint
    Réponses: 2
    Dernier message: 11/01/2009, 00h02
  4. Réponses: 6
    Dernier message: 02/01/2009, 17h23
  5. Réponses: 10
    Dernier message: 30/10/2008, 14h06

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