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 :

XAML / Condition


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 25
    Par défaut XAML / Condition
    Salut,

    Est -il possible de mettre du code dans XAML comme :
    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
    if cond then 
        <TextBox Name="txtNoSeqCert"
                             VerticalAlignment="Center"
                             HorizontalAlignment="Center"
                             Width="45"
                             IsReadOnly="True"
                             Text="{Binding Mode=OneWay,Path=nom}"/>
    else
          <TextBox Name="txtNoSeqCert"
                             VerticalAlignment="Center"
                             HorizontalAlignment="Center"
                             Width="45"
                             IsReadOnly="True"
                             Text="{Binding Mode=OneWay,Path=prenom}"/>
    end if
    Sinon comment le faire?

    Merci de m'aider

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    J'ai beaucoup aimé la façon dont ce blogueur fait pour faire de la compilation conditionnelle dans du XAML si ça peut t'aider.
    Dernière modification par Invité ; 24/02/2011 à 10h30.

  3. #3
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Si tu veux une condition à la compilation l'exemple de h2s84 est plutot sympa
    En revanche, si tu veux mettre en place un affichage selon une condition Il y a plusieurs solutions (RunTime) :

    Les DataTemplateSelectors : http://www.switchonthecode.com/tutor...mplateselector

    ou sinon plus simple mais peut avoir un impact sur les perfs : écrire un petit converter qui transforme un boolean (le resultat de ta condition) en Visibility :

    Code c# : 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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    public class VisibilityConverter : IValueConverter
    {
     
            #region IValueConverter Members
     
            public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                bool mustInvert = false;
     
                if (parameter != null)
                {
                    bool.TryParse(parameter as string, out mustInvert);
                }
     
                if ((bool)value == true)
                {
                    if (mustInvert == false)
                    {
                        return Visibility.Visible;
                    }
     
                    return Visibility.Collapsed;
     
                }
     
                if (mustInvert == false)
                {
                    return Visibility.Collapsed;
                }
     
                return Visibility.Visible;
            }
     
            public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                throw new NotImplementedException();
            }
     
            #endregion
        }
    }

    Tu peux l'utiliser comme ça :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <TextBox Name="txtNoSeqCert" Visibility="{Binding MonResultatCondition, Converter={StaticResource VisibilityConverter}}"  ... />
    <TextBox Name="txtNoSeqCert" Visibility="{Binding MonResultatCondition, Converter={StaticResource VisibilityConverter},ConverterParameter=True}"  ... />

    Note bien le ConverterParameter à True de la derniere TextBox qui te permet d'inverser le résultat.

Discussions similaires

  1. Condition If multiple
    Par M1000 dans le forum ASP
    Réponses: 2
    Dernier message: 01/03/2004, 13h46
  2. [MYSQL] conditions et requetes
    Par sebos63 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 26/02/2004, 16h41
  3. Condition sur debug et release
    Par xave dans le forum MFC
    Réponses: 3
    Dernier message: 04/02/2004, 15h04
  4. Condition et contenu TImage
    Par Detlev_linux dans le forum Langage
    Réponses: 6
    Dernier message: 23/12/2003, 01h00
  5. boucle avec condition d'arret changeante
    Par NicoH dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2003, 11h48

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