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

VB.NET Discussion :

Boucle pour déclaration du data binding. (pb avec adressof)


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 335
    Par défaut Boucle pour déclaration du data binding. (pb avec adressof)
    Bonsoir à tous,

    J'ai enfin réussi à faire fonctionner le binding dans le sens que je voulais.

    La déclaration est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    TotalMass_tbox.DataBindings.Clear()
     
            Dim binding As New Binding("Text", Chassis, "TotalMass", True, DataSourceUpdateMode.OnValidation, 0)
     
            binding.ControlUpdateMode = ControlUpdateMode.Never
     
            TotalMass_tbox.DataBindings.Add(binding)
    Pour ce qui est du clear, je vois bien comment l'automatiser à travers une boucle For each.

    Mais pour la déclaration du binding il faut établir une correspondance entre le control textbox et le nom de la propriété qu'il bind...

    Comment faire?

  2. #2
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 335
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        Private Sub SetHandlers()
     
            For Each control As Control In {Mass_box, Geometry_box, Wheels_box, Suspension_box, Steering_box}
                If TypeOf control Is TextBox Then
                    control.DataBindings.Clear()
                    AddHandler control.Validated, AddressOf DisplayChassisTabResults
     
                End If
            Next
     
        End Sub
    Qu'est ce donc que ce problem?

    Error 1 Method 'Private Sub DisplayChassisTabResults()' does not have a signature compatible with delegate 'Delegate Sub EventHandler(sender As Object, e As System.EventArgs)'. G:\YMD - 09.12\YMD\SetupForm.vb 17 57 YMD

  3. #3
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Ben c'est marqué dans le message.
    La fonction que tu as passé n'est pas un délégué compatible avec le délégué attendu. D'ailleurs, ca se voit bien que la signature n'est pas la même.

  4. #4
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 335
    Par défaut
    J'ai pris çà sur cet exemple qui fonctionne:

    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
        Private Sub SetHandlers()
     
            For Each contr As Control In Controls
                If TypeOf contr Is TextBox Then
                    AddHandler contr.Validated, AddressOf UpdateDownforce
                End If
            Next
     
        End Sub
     
        Private Sub UpdateDownforce()
            If isValueOK(TextBox1.Text, 100, 0) Then
                DownforceTextbox.Text = Math.Round(mycar1.CalculateTotalVerticalForce(TextBox1.Text), 2)
     
            End If
        End Sub
    Ce délègue doit être implicite car je n'ai rien déclaré, et dans cette exemple non plus... Ma procedure DisplayChassisTabResults n'ayant pas de paramètre, il faut que je déclare explicitement un délègue sans paramètre??

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 335
    Par défaut
    Citation Envoyé par Nathanael Marchand Voir le message
    Ben c'est marqué dans le message.
    La fonction que tu as passé n'est pas un délégué compatible avec le délégué attendu. D'ailleurs, ca se voit bien que la signature n'est pas la même.
    Comment les rendre compatible alors?

  6. #6
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Un délégué est un pointeur sur une fonction. Comme pour un pointeur normal, tu ne peux pas faire pointeur d'entier sur un string, ca n'a pas de sens. Pour un délégué, c'est la même chose, il faut que tu regardes la documentation pour obtenir la signature d'une fonction qui correspond au type du délégué.

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/04/2010, 11h01
  2. Data bindings avec des pictures box
    Par patoche.05 dans le forum C#
    Réponses: 0
    Dernier message: 20/04/2009, 12h54
  3. Script avec gestion d'erreur pour loader des data depuis un csv
    Par olive_le_malin dans le forum Requêtes
    Réponses: 9
    Dernier message: 10/04/2009, 18h04
  4. Data Binding avec setter et getter possible?
    Par MathG dans le forum Flex
    Réponses: 2
    Dernier message: 15/01/2009, 16h59
  5. Binding data Interbase/Firebird avec NetBeans 6
    Par kimlee dans le forum NetBeans
    Réponses: 4
    Dernier message: 31/01/2008, 10h52

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