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 Forms Discussion :

[VB.NET] TextBox et DataBinding, encore :-)


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de apoingsfermes
    Profil pro
    Inscrit en
    Février 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 54
    Par défaut [FAQ][VB.NET] Raffraichir un DataBinding
    Bonjour,

    j'ai un TextBox lié à une propriété d'objet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monTextBox.dataBindings.Add("Text", monObjet, "maPropriété", True)
    Problème : quand je change directement la valeur de la propriété :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monObjet.ma propriété = nouvelleValeur
    , le textbox n'est pas updaté.
    Si je change la référence sur l'objet :

    même problème.

    Il faut écrire plus de code pour gérer le DataBinding dans les deux sens ?

  2. #2
    Membre Expert
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Par défaut
    Salut

    Tout depend de deux choses: ta version de framework et de la nature de ton monObjet (il herite ou implemente quelquechose de particulier?)

    Avec le framework < 2.0 il faut ecrire du code
    La premiere solution (qui n'a jamais marche) pour moi est d'ecrire dans ton monObjet un evenement nomme [maPropriété]Changed et de faire un raiseevent dans le Set de la propriete maPropriété. J'ai lu plusieur fois que ca marchait...

    Donne plus d'infos

  3. #3
    Membre confirmé Avatar de apoingsfermes
    Profil pro
    Inscrit en
    Février 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 54
    Par défaut
    Je développe avec le framework 2.0 et "monObjet" est une instance d'une classe quelconque, qui n'hérite de rien de particulier (Icloneable).

    Je comprends le code que tu me conseilles d'écrire mais ça me paraît bizarre qu'il faille le rajouter vu qu'il est bien spécifié que le dataBinding tel que je l'utilise marche normalement dans les deux sens.

  4. #4
    Membre confirmé Avatar de apoingsfermes
    Profil pro
    Inscrit en
    Février 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 54
    Par défaut
    Peut-être faut-il utiliser BindingContext, BindingManager & Cie, mais comme tous mes objets et contrôls sont dans le même formulaire, je ne devrais pas avoir à l'utiliser ??

  5. #5
    Membre confirmé Avatar de apoingsfermes
    Profil pro
    Inscrit en
    Février 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 54
    Par défaut
    J'ai trouvé le truc :

    Il faut écrire le code suivant dans la classe contenant la propriété qui nous intéresse :

    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
    Imports System.ComponentModel
    
    Public Class ClasseDeMonObjet
        Implements INotifyPropertyChanged
     
      Private p as String
     
      Public Property maPropriete() As String
            Get
                Return p
            End Get
            Set(ByVal value As String)
                p = value
                NotifyPropertyChanged("maPropriété")        End Set
        End Property
    
    ' Puis le code normal de la classe, puis : 
    
        Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
    
        Private Sub NotifyPropertyChanged(ByVal info As String)
            RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
        End Sub
     End Class
    Voilà !
    Plus d'info sur
    http://msdn2.microsoft.com/en-us/library/ms184414.aspx

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

Discussions similaires

  1. [vb.net] [textbox] pourquoi validating est appellée
    Par graphicsxp dans le forum Windows Forms
    Réponses: 4
    Dernier message: 02/11/2005, 11h09
  2. [VB.NET]TextBox lié a une ComboBox
    Par Diablo_22 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 23/06/2005, 15h03
  3. [VB.net] TextBox dans Repeater
    Par TekP@f dans le forum ASP.NET
    Réponses: 2
    Dernier message: 06/05/2005, 13h38
  4. [vb.net][textbox] Avoir un value field et un display field
    Par graphicsxp dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/04/2005, 17h59
  5. [VB.NET] Textbox -> seulement des chiffres sans API?
    Par Pleymo dans le forum Windows Forms
    Réponses: 10
    Dernier message: 25/04/2005, 14h00

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