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

C# Discussion :

Binding entre deux éléments du même xaml


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Points : 13
    Points
    13
    Par défaut Binding entre deux éléments du même xaml
    Bonjour,

    J'aurais besoin d'un petit coup de main pour une action qui est en soi très simple.

    J'ai une interface en xaml qui contient un combo box. Celui ci possède 2 options statiques (Société ou PersonnePhysique). A la suite de cela, j'ai un formulaire pour ajouter un client (un client étant soit une société, soit une personne physique). Une société est caractérisée par les mêmes données qu'une personne physique à une exception prêt : la société ne comporte pas de prénom. J'aimerais donc enlever le champs prénom de ma fenêtre si la personne choisi "société" dans ma combobox, et le remettre si elle change en "personne physique". J'aimerais également pouvoir influencer mon binding en fonction de cela (e.xxxx pour les personne physique et s.xxx pour les sociétés), mais si ce n'est pas possible je peux le faire dans le code sans trop de soucis.

    J'ai cru comprendre qu'il était possible de faire un binding entre 2 éléments xaml directement. J'ai aussi cru comprendre qu'il était possible de faire cela au moyen d'un usercontrol, chose que j'aimerais éviter.

    Voici mon xaml :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     <Grid x:Name="AjouterClient" Margin="20">
            <Grid.RowDefinitions>
                <RowDefinition Height="40"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="22"/>
                <RowDefinition Height="Auto" MinHeight="23"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="50" />
            </Grid.ColumnDefinitions>
            <ComboBox x:Name="typeClient" Grid.Row="0" Grid.Column="1" Height="25" VerticalContentAlignment="Center">
                <ComboBoxItem Content="Personne physique" IsSelected="True" />
                <ComboBoxItem Content="Société" IsSelected="False" />
            </ComboBox>
     
            <Label Grid.Row="1" Grid.Column="0" Content="Nom *"/>
            <Border BorderThickness="3" Grid.Row="1" Grid.Column="1">
                <TextBox BorderBrush="Black" MaxHeight="30" Text="{Binding Path=e.Nom}" />
            </Border>
            <Label Grid.Row="1" Grid.Column="2" Content="Prenom *"/>
            <Border BorderThickness="3" Grid.Row="1" Grid.Column="3">
                <TextBox BorderBrush="Black" MaxHeight="30" Text="{Binding Path=e.Prenom}" />
            </Border>
     
            <Label Grid.Row="2" Grid.Column="0" Content="Rue"/>
            <Border BorderThickness="3" Grid.Row="2" Grid.Column="1">
                <TextBox BorderBrush="Black" MaxHeight="30" Text="{Binding Path=a.Rue}" />
            </Border>
            <Label Grid.Row="2" Grid.Column="2" Content="Numero"/>
            <Border BorderThickness="3" Grid.Row="2" Grid.Column="3">
                <TextBox BorderBrush="Black" MaxHeight="30" Text="{Binding Path=a.Numero}" />
            </Border>
     
            <Label Grid.Row="3" Grid.Column="0" Content="Code postal"/>
            <Border BorderThickness="3" Grid.Row="3" Grid.Column="1">
                <TextBox BorderBrush="Black" MaxHeight="30" Text="{Binding Path=a.CodePostal}" />
            </Border>
            <Label Grid.Row="3" Grid.Column="2" Content="Ville"/>
            <Border BorderThickness="3" Grid.Row="3" Grid.Column="3">
                <TextBox BorderBrush="Black" MaxHeight="30" Text="{Binding Path=a.Ville}" />
            </Border>
     
            <Label Grid.Row="4" Grid.Column="0" Content="Pays"/>
            <Border BorderThickness="3" Grid.Row="4" Grid.Column="1">
                <TextBox BorderBrush="Black" MaxHeight="30" Text="{Binding Path=a.Pays}" />
            </Border>
            <Label Grid.Row="4" Grid.Column="2" Content="Email"/>
            <Border BorderThickness="3" Grid.Row="4" Grid.Column="3">
                <TextBox BorderBrush="Black" MaxHeight="30" Text="{Binding Path=e.Email}" />
            </Border>
     
            <Label Grid.Row="5" Grid.Column="0" Content="GSM"/>
            <Border BorderThickness="3" Grid.Row="5" Grid.Column="1">
                <TextBox BorderBrush="Black" MaxHeight="30" Text="{Binding Path=e.GSM}" />
            </Border>
            <Label Grid.Row="5" Grid.Column="2" Content="Telephone"/>
            <Border BorderThickness="3" Grid.Row="5" Grid.Column="3">
                <TextBox BorderBrush="Black" MaxHeight="30" Text="{Binding Path=e.Telephone}" />
            </Border>
     
     
            <Button Content="Ajouter" Grid.Column="1" Grid.Row="8" Command="{Binding Employe.AddCommand, Source={StaticResource Locator}}" Click="Button_Click_1"/>
            <Button Content="Annuler" Grid.Column="3" Grid.Row="8" Click="Button_Click_2"/>
     
        </Grid>
    Et voici mon interface :


  2. #2
    Membre expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Points : 3 568
    Points
    3 568
    Par défaut
    Tu peux, avec ElementName : http://msdn.microsoft.com/fr-fr/libr...v=vs.110).aspx
    Exemple :
    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <TextBox Text="{binding blabla,ElementName=MyOtherControlName}"/>
    Microsoft MVP : Windows Platform

    MCPD - Windows Phone Developer
    MCPD - Windows Developer 4

    http://www.guruumeditation.net

    “If debugging is the process of removing bugs, then programming must be the process of putting them in.”
    (Edsger W. Dijkstra)

Discussions similaires

  1. [Flex4] Interdir dragdrop entre deux éléments
    Par Mygush dans le forum Flex
    Réponses: 2
    Dernier message: 27/10/2011, 09h06
  2. Connexion SQL Server entre deux postes sur même groupe de travail
    Par nico1492 dans le forum Administration
    Réponses: 1
    Dernier message: 21/12/2010, 15h01
  3. Réponses: 4
    Dernier message: 17/06/2010, 21h15
  4. [XL-2003] récup de données entre deux tableaux aux mêmes colonnes
    Par leowish dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 23/04/2010, 13h48
  5. Binding entre deux UserControl
    Par mehdi_ouni dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 11/03/2008, 16h10

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