J'ai une form comportant un databinding assez complexe (5 bindingsource, 3 datagridview, 1 bindingnavigator.... et 1 combobox qui emmerde le peuple).
Alors, tout ceci est connecté à des objets métier de mon cru, qui récupèrent de manière déconnectée - c'est à dire pas de lazy loading, simplement parce que c'est pas applicable dans mon cas - mes données depuis une base PostgreSQL 8.2x avec le connecteur Npgsql (ADO.NET).
J'ai deux soucis avec tout ce bazar actuellement.
Mon premier souci est cette foutue combobox qui n'update pas l'objet métier auquel elle est liée quand je change l'item sélectionné. (D'après ce que j'ai pu lire, cela est dû au fait que "grâce" à l'interface INotifyPropertyChanged, cette combobox réécrit sa propre valeur depuis l'objet métier avant de modifier la valeur de l'objet métier. Du coup, ça n'a aucun effet.... -_-... supair...)
Si quelqu'un a une solution propre qui ne nécessite pas de dériver une classe "NotityPropertyChangedFixedComboBox" de la classe ComboBox, je suis preneur.
Mon second souci, qui m'ennuie davantage, je dois bien l'avouer, c'est que tout ce databinding est lent au chargement.
En effet, dès que je charge quelque chose, je vais le chercher dans la base de donnée (située sur un serveur dans le réseau local, c'est même pas une requête locale quoi...), ce qui est le comportement normal, vous me direz.
Oui, sauf que là, le databinding de microsoft se met en route même quand cela n'est pas nécessaire.
Du coup je me retrouve avec facilement une au moins demi-douzaine d'appels à la même requête SELECT...
Y a-t-il un moyen de limiter ce comportement à une seule requête SELECT par contrôle au moins ?
D'une manière générale, que pensez-vous du databinding et du "design-time databinding" ?
Partager