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 :

Binding d'une variable déclaré en C# sur un Control


Sujet :

Windows Presentation Foundation

  1. #1
    Membre du Club Avatar de Takumi
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2009
    Messages : 163
    Points : 62
    Points
    62
    Par défaut Binding d'une variable déclaré en C# sur un Control
    Bonjour,

    Je voudrais pouvoir lier une variable sur un attribut d'un control. Dans mon cas je voudrais pouvoir lier une variable sur l'attribut IsEnabled d'un de mes TextBox. Cette variable est un booléen qui s'appelle IsConnected déclaré dans ma classe Window 1, et ce n'est pas une variable static(mais cela pourrais en être une car elle permet juste de définir si la personne est connecté ou non). J'ai cherché sur Google, je suis tombé sur ce post:

    http://www.developpez.net/forums/d40...-element-xaml/

    J'ai essayé d'adapter à mon cas mais cela n'a rien donné. Donc j'ai continué les recherches, j'ai lus quelque post par-ci par là mais jamais des choses complètes, donc j'ai pas plus avancé. Mais il parlait souvent de DependencyProperty. Donc comment pourrais-je faire pour arriver à faire ce que je souhaite?

    Je vous remercie d'avance.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    je me demande si tu pourrais pas le faire avec un binding vers le parent style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        <TextBlock Text="{Binding Path=IsConnected, 
                                  RelativeSource=
     {RelativeSource FindAncestor, AncestorType={x:Type Window}}}" />
    bon la c'est un textbloxk mais bon
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  3. #3
    Membre du Club Avatar de Takumi
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2009
    Messages : 163
    Points : 62
    Points
    62
    Par défaut
    J'ai une erreur:

    AncestorType doit être spécifié en mode FindAncestor
    Pourtant je l'ai bien mis comme dans ton exemple.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    oui c'est vrai pardon faudrait que tu mete le nom de ta fenetre
    sur windows forcement tu as pas le isconnected
    avec un attribut du style
    local:ma_fenetre
    tu definira le local en xmlns
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  5. #5
    Membre du Club Avatar de Takumi
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2009
    Messages : 163
    Points : 62
    Points
    62
    Par défaut
    Pourrais-tu me montrer un bout de code pour illustrer?

    Merci

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    je vais te faire un exemple
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    voila le code et ca marche tu compile meme si tu as une erreur
    eheheheheh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <Window x:Class="binding_sur_window.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:binding_sur_window"
        Title="Window1" Height="300" Width="590">
        <Grid>
            <Button HorizontalAlignment="Left" Margin="25,82,0,122" Name="button1" Width="143" Click="button1_Click">Button</Button>
            <TextBlock Height="21" HorizontalAlignment="Left" Margin="25,40,0,0" Name="textBlock1" VerticalAlignment="Top" 
                       Text="{Binding Path=IsConnected, 
                                  RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:Window1}}}"
                       Width="143" Background="Cyan" />
        </Grid>
    </Window>
    et
    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
     
    namespace binding_sur_window
    {
        /// <summary>
        /// Logique d'interaction pour Window1.xaml
        /// </summary>
        public partial class Window1 : Window, INotifyPropertyChanged
        {
            private bool _IsConnected = false;
     
            public bool IsConnected
            {
                get { return _IsConnected; }
                set 
                {
                    _IsConnected = value; 
                    if(PropertyChanged != null)
                        PropertyChanged(this,new PropertyChangedEventArgs("IsConnected"));
                }
            }
     
            public Window1()
            {
                InitializeComponent();
            }
     
            #region INotifyPropertyChanged Membres
     
            public event PropertyChangedEventHandler PropertyChanged;
     
            #endregion
     
            private void button1_Click(object sender, RoutedEventArgs e)
            {
                IsConnected = !IsConnected;
            }
        }
    }
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

Discussions similaires

  1. utiliser une variable déclaré en delphi dans un sql
    Par jamdinhe dans le forum Bases de données
    Réponses: 12
    Dernier message: 28/06/2018, 09h32
  2. Réponses: 9
    Dernier message: 03/07/2006, 18h32
  3. [Forum] Envoyer une variable quand on clique sur un lien
    Par Eisy dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 34
    Dernier message: 17/03/2006, 12h05
  4. Envoi d'une variable en shell script sur php
    Par Ponchi dans le forum Langage
    Réponses: 3
    Dernier message: 07/02/2006, 13h54
  5. Réponses: 3
    Dernier message: 07/01/2006, 22h17

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