[winform] flowlayoutPanel Bindable

thomic - 27 janv. 2015 à 13:16
thefolin Messages postés 56 Date d'inscription mercredi 3 octobre 2012 Statut Membre Dernière intervention 13 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?


Toute idée est la bienvenue :)

Merci

6 réponses

thefolin Messages postés 56 Date d'inscription mercredi 3 octobre 2012 Statut Membre Dernière intervention 13 mai 2015
28 janv. 2015 à 15:08
Bonjour,

J'ai lus ton idée alors je fais vite pour écrit je reviens plus tard.
Ton application est en WPF non en WindForm pour utilisé le Binding ?

Bref, alors si tu veux bien structure ton application coté code tu peux utiliser l'architecture MVVM ou MVC si tres lourds. Je te conseille le MVVM.

Ensuite quand tu va cliqué sur un bouton, pourquoi pas crée un objet puis tu envoie cela a ta BDD qui va dire si oui ou non il y a le stock.

--
0
thomasmic Messages postés 8 Date d'inscription samedi 24 janvier 2015 Statut Membre Derniè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.
0
thefolin Messages postés 56 Date d'inscription mercredi 3 octobre 2012 Statut Membre Dernière intervention 13 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 ....

Voici un lien pour le MVVM avec WindForm
http://blog.soat.fr/2012/02/comment-utiliser-mvvm-avec-windows-forms/

--
0
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
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"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
@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.
0
thefolin Messages postés 56 Date d'inscription mercredi 3 octobre 2012 Statut Membre Dernière intervention 13 mai 2015
9 févr. 2015 à 09:37
L'architecture 3 tiers peut être mis en place avec le MVVM :)

--
0
Rejoignez-nous