thomic
-
27 janv. 2015 à 13:16
thefolin
Messages postés56Date d'inscriptionmercredi 3 octobre 2012StatutMembreDernière intervention13 mai 2015
-
9 févr. 2015 à 09:37
Bonjour,
Est-il possible de rendre un flowlayoutPanel bindable?
Je m'explique.
J'ai un applicatif qui permet d'encoder des commandes pour un bar.
Tout fonctionne bien. Mais j'ai l'impression que ma façon de travailler pourrait être bien mieux.
Le programme consiste à récupérer les produits existants dans une DB.
à partir de ces produits, je crée une List<Produit>.
à partir de cette liste, je crée 3 listes de boutons, listes faites à partir du type de produit.
- List<Bouton> boutonsSnack, List<Bouton> boutonsBiere, List<Bouton> boutonsSoft.
et en fonction du choix de type de produit que l'utilisateur veut afficher, j'ajoute un par un mes boutons dans le flowlayoutPanel.
chaque bouton a comme "fond" l'image du produit, et la propriété Tag du bouton reçoit l'objet Produit.
Dejà là, n'y a t'il pas moyen de faire plus propre?
Par là je veux dire que quand je clique sur le bouton correspondant à un produit, je récupère le produit stocké dans le Tag du bouton.
Je teste ensuite si ce produit est encore en stock ( directement sur l'objet ).
S'il est en stock, il faut réduire le stock, etc...
J'ai l'impression que c'est un peu brouillon tout celà.
N'y a t'il pas une manière plus propre de "binder" le flowlayoutpanel à la liste de mes produits, qui seront représentés dans ce flowlayoutpanel par des boutons et que des actions sur ces boutons se répercuteraient directement sur les produits qu'ils représentent?
thomasmic
Messages postés8Date d'inscriptionsamedi 24 janvier 2015StatutMembreDernière intervention 3 mars 2020 28 janv. 2015 à 19:38
Bonjour,
Mon application est du winform et non du WPF.
Le principe est justement de faire le moins d'accès possible à la DB.
Je suis parti sur des classes personnalisées, une qui hérite de la classe Button avec comme propriété un produit
et une autre classe qui hérite de FlowlayoutPanel qui reçoit en paramètre ma liste de produits et qui crée mes boutons.
thefolin
Messages postés56Date d'inscriptionmercredi 3 octobre 2012StatutMembreDernière intervention13 mai 2015 30 janv. 2015 à 08:11
Si tu veux faire le moins d'accès possible à la DB.
Utilise le designe Pattern Singleton.
Comment a tu structuré ton code ? MVVM ou architecture 3 tiers ou etc ....
cs_Robert33
Messages postés834Date d'inscriptionsamedi 15 novembre 2008StatutMembreDernière intervention14 janvier 201733 30 janv. 2015 à 18:46
Bonsoir
Je ne crois pas qu'il soit possible de "binder" la propriété "Controls" d'un flowlayoutPanel, qui ne possède pas non plus de datasource.
donc à part utiliser un autre type de contrôle (DataGridView) mais qui changerait radicalement la présentation, ton approche me semble tout à fait "propre"
Vous n’avez pas trouvé la réponse que vous recherchez ?
@thefolin : Je dirais plutôt 3 tiers sans être sûr de respecter toutes les règles pour ce soit fait correctement.
Je vais jeter un coup d'oeil à ton lien, car je ne pensais même pas que le MVVM était applicable au Winform.
@cs_Robert33 : Effectivement ma solution n'utilise pas le binding, mais est une façon bien plus propre que ma solution de départ.