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 :

[+winform] flowlayoutpanel bindable


Sujet :

C#

  1. #21
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 150
    Points : 25 066
    Points
    25 066
    Par défaut
    fluide ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  2. #22
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 171
    Points : 78
    Points
    78
    Par défaut
    J'ai toujours peur que des actions manuelles soient moins fluides ( plus visible ) que du binding.c'est peut-etre une idée.

  3. #23
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 150
    Points : 25 066
    Points
    25 066
    Par défaut
    pas compris
    mais si tu parles de ce que vois l'utilisateur, il ne verra pas la différence
    le binding c'est la même chose que ce que tu pourrais faire sans, le framework .net est codé en .net, donc le binding c'est du .net qui est exécuté aussi
    il n'y a pas de magie là dedans
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #24
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 171
    Points : 78
    Points
    78
    Par défaut
    J'ai maintenant implémenté mon UC, ma nouvelle classe Commande et mon flowlayout panel.

    Petit soucis, lors que ma commande change, il faut que mon flowlayout panel se mette à jour.

    Chose bizarre, pas moyen d'utiliser l'interface INotifyCollectionChanged et donc pas d'évènement sur mon dictionary.

    D'après MSDN, elle est disponible pour le framework 3.5. mais impossible de mettre la main dessus... Je travaille sous visual studio 2008 et sous Seven.... une idée?

    Merci

  5. #25
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 150
    Points : 25 066
    Points
    25 066
    Par défaut
    je ne pense pas que cette interface soit utilisée côté control en winform, donc tu peux rajouter n'importe quel évènement pour faire ca
    en wpf c'est pratique parce que les controles wpf y sont abonnés
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #26
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 171
    Points : 78
    Points
    78
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    je ne pense pas que cette interface soit utilisée côté control en winform, donc tu peux rajouter n'importe quel évènement
    Que veux-tu dire par "tu peux rajouter n'importe quel évènement"? Gérer moi même la modification de la commande? via un délégué par exemple ?

  7. #27
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 150
    Points : 25 066
    Points
    25 066
    Par défaut
    que veux tu faire avec INotifyCollectionChanged ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #28
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 171
    Points : 78
    Points
    78
    Par défaut
    Lorsque ma commande change (dictionary), je veux que mon flowlayoutpanel ( qui va afficher ma commande ) se mette à jour.

  9. #29
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 171
    Points : 78
    Points
    78
    Par défaut
    J'ai utilisé un délégué associé à un event, et j'ai réussi à faire ce que je voulais. les modifications sur ma commande sont bien réceptionnés et mon FLP bien mis à jour.

    Mais encore une fois, je ne trouve pas celà aussi fluide que le binding. Comme je trie ma commande, je dois supprimer les UC de mon flp avant de les réafficher trier, et j'ai l'impression que ces actions sont visibles à l'écran.

    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
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
     
    namespace GestionBar
    {
        class CommandePanel : FlowLayoutPanel
        { 
            public CommandePanel()
            {
                Global.CommandeEnCours.OnCommandeChanged += new Commande.CommandeChanged(CommandeEnCours_OnCommandeChanged);
            }
     
            void CommandeEnCours_OnCommandeChanged()
            {
                this.Controls.Clear();
                this.ChargerCommande();
            }
     
            void ChargerCommande()
            {
                foreach (KeyValuePair<Produit, Int32> paire in Global.CommandeEnCours.Consommations)
                {
                    ucConsommation uc = new ucConsommation(paire.Key, paire.Value);
                    this.Controls.Add(uc);
                }
            }
        }
    }
    J'ai, j'espère, une dernière question.
    Sais-tu quelle méthode utilise le ContainsKey pour comparer mes clefs? c'est à dire que j'aimerais bien que mon Containskey ne compare qu'une propriété de mon objet (key) et non l'objet en entier? As-tu une solution?

    Merci

  10. #30
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 150
    Points : 25 066
    Points
    25 066
    Par défaut
    avant d'ajouter / modifier / supprimer des controles sur un un flp (et quelques autres) il faut faire
    flp.suspendlayout
    et une fois que tu as tout fait
    flp.resumelayout
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  11. #31
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 171
    Points : 78
    Points
    78
    Par défaut
    j'ai fait ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            void CommandeEnCours_OnCommandeChanged()
            {
                this.SuspendLayout();
                this.Controls.Clear();
                this.ChargerCommande();
                this.ResumeLayout();
            }
    mais je n'ai pas l'impression de voir une différence

Discussions similaires

  1. [VS.NET] [WinForms] [VB.NET] Créer un installeur
    Par Fruity dans le forum Windows Forms
    Réponses: 3
    Dernier message: 21/05/2008, 16h50
  2. [C#] [WinForms] Ascenceur du DataGrid !!!
    Par vandeyy dans le forum Windows Forms
    Réponses: 9
    Dernier message: 21/09/2004, 17h15
  3. [C#] [WinForms] Passage de fenetres...
    Par lololefada dans le forum Windows Forms
    Réponses: 29
    Dernier message: 19/07/2004, 16h15
  4. [VB.NET] [WinForms] Emdebed Ressource !
    Par maitrebn dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/07/2004, 12h46
  5. [VB.NET] [Winform] DataGrid Excel et CheckBox
    Par mic56 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/06/2004, 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