fluide ?
J'ai toujours peur que des actions manuelles soient moins fluides ( plus visible ) que du binding.c'est peut-etre une idée.
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
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
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
que veux tu faire avec INotifyCollectionChanged ?
Lorsque ma commande change (dictionary), je veux que mon flowlayoutpanel ( qui va afficher ma commande ) se mette à jour.
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.
J'ai, j'espère, une dernière question.
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); } } } }
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
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
j'ai fait ceci
mais je n'ai pas l'impression de voir une différence
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(); }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager