Académique Documents
Professionnel Documents
Culture Documents
Cet article est le premier d'une série dont le but est de montrer comment combler les lacunes
et les faiblesses de la liaison de données en Windows Forms.
Pour plus d'informations sur la liaison de données en Windows Forms, je vous invite à faire
des recherches sur internet ou à consulter ce lien sur MSDN.
Commentez
Windows Forms - de la liaison de données à la liaison d'objets par Olivier Saint-Ouen
-2-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2010 Olivier Saint-Ouen. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://oliviersaintouen.developpez.com/dotnet/winforms/from-databinding-to-objectbinding/partie1-ergonomie/
Windows Forms - de la liaison de données à la liaison d'objets par Olivier Saint-Ouen
Chaque article sera fourni avec une preuve de faisabilité sous forme de code source et de démonstration.
Ces projets seront indépendants les uns des autres et développés en Visual Basic sous Visual Studio 2010. Ils seront
uniquement des preuves de faisabilité et ne seront donc pas de qualité suffisante pour être utilisés tels quels en
production.
-3-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2010 Olivier Saint-Ouen. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://oliviersaintouen.developpez.com/dotnet/winforms/from-databinding-to-objectbinding/partie1-ergonomie/
Windows Forms - de la liaison de données à la liaison d'objets par Olivier Saint-Ouen
Finalité
Un projet regroupant toutes ces preuves de faisabilité en les améliorants pour les rendre utilisables en production
sera fourni sur Developpez.Com.
Ce projet permettra l'utilisation de la liaison d'objets et proposera d'autres améliorations complémentaires à la liaison
d'objets.
I-A - Constat
Comme tout développeur en Windows Forms, j'ai toujours été très déçu non pas du potentiel de la liaison de données,
mais par sa sous-utilisation, un peu comme si Microsoft ne croyait pas trop en sa propre technologie.
Après plus de 10 ans d'expérience dans le développement d'application, j'ai pu constater que le code des interfaces
graphiques est trop souvent du code de « plomberie » et encore plus souvent du code de liaison (telle méthode
appelée sur tel évènement, etc.).
Que l'on utilise un patron de conception, sa propre méthode ou autre chose, on se rend vite compte que 60 % du code
des interfaces graphiques est du code de liaison et rien d'autre. Et encore, j'abaisse volontairement mon estimation
pour ne pas choquer les esprits sensibles.
Or justement, lorsque l'on se décide enfin à passer le cap et à utiliser la liaison de données pour remplacer tout ce
code pas inutile mais sans aucune valeur ajoutée et sans aucune intelligence, on se rend tout de suite compte que...
ce n'est pas possible !
En effet la liaison de données mérite son nom, elle est destinée à relier des données à des composants graphiques,
et toutes ses lacunes et ses faiblesses viennent de cet objectif fonctionnel.
Pourtant le moteur de liaison utilisé par la liaison de données est beaucoup plus puissant que ne le laisse apparaître
la liaison de données. Un exemple : le moteur de liaison gère très bien les propriétés imbriquées (nested properties),
seules les interfaces graphiques pour saisir ces propriétés imbriquées ne les supportent pas.
Alors quelles sont ces lacunes et faiblesses de la liaison de données en Windows Forms ?
Dans cette série d'articles, je vais donc essayer de résoudre ces lacunes une par une et le tout sans réinventer la
roue. J'entends par là que les résolutions se doivent le plus possible d'être compatibles avec l'existant.
En effet, à quoi bon faire tout ça, si l'on doit réécrire tous les contrôles des Windows Forms.
Absolument aucun intérêt, autant passer directement à WPF et / ou Silverlight.
-4-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2010 Olivier Saint-Ouen. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://oliviersaintouen.developpez.com/dotnet/winforms/from-databinding-to-objectbinding/partie1-ergonomie/
Windows Forms - de la liaison de données à la liaison d'objets par Olivier Saint-Ouen
En Windows Forms on dispose de deux moyens pour saisir visuellement une liaison de données :
-5-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2010 Olivier Saint-Ouen. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://oliviersaintouen.developpez.com/dotnet/winforms/from-databinding-to-objectbinding/partie1-ergonomie/
Windows Forms - de la liaison de données à la liaison d'objets par Olivier Saint-Ouen
Dans les deux images ci-dessus, la source de données utilisée est la même. Voici son code.
Public Class PersonPropertyModel
End Class
Public Class AddressPropertyModel
End Class
Simple et plutôt classique, pourtant, entre l'éditeur et l'afficheur, les comportements sont
très différents.
• L'afficheur ne souffre d'aucun défaut et remplit très bien son rôle.
Il supporte parfaitement les propriétés imbriquées, et permet même de faire un glisser déplacer de ces
propriétés pour créer directement le label et le contrôle de saisie associés.
• L'éditeur, par contre, est difficile d'accès et souffre d'un bogue extrêmement gênant sur les propriétés
imbriquées puisqu'il ne les supporte pas.
On vient de mettre le doigt sur ce que j'appelle « lacunes et faiblesses » de la liaison de données.
C'est aussi ce genre de chose qui me fait penser que Microsoft, lors de la création des Windows Forms a expérimenté
la liaison de données, mais n'a pas poussé le sujet jusqu'au bout, en tout cas, en Windows Forms.
-6-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2010 Olivier Saint-Ouen. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://oliviersaintouen.developpez.com/dotnet/winforms/from-databinding-to-objectbinding/partie1-ergonomie/
Windows Forms - de la liaison de données à la liaison d'objets par Olivier Saint-Ouen
Les étapes pour accéder à l'éditeur de liaison à partir du concepteur visuel des Windows
Forms sont :
1 Sélectionner un composant visuel ;
2 Afficher la page de propriétés de ce composant visuel ;
3 Sélectionner la propriété DataBindings ;
4 Dérouler cette propriété ;
5 Sélectionner la sous-propriété « Avancées » ;
6 Cliquer sur le bouton qui ouvre l'éditeur.
Et il faut répéter ces actions pour chaque liaison que l'on souhaite créer.
Sur la quantité d'informations à saisir pour configurer une liaison, on ne peut pas faire grand-chose. Hormis, peut-
être, fournir un accès indépendant à chaque valeur pour faciliter l'accès à ces valeurs.
Par contre, concernant l'accès à l'éditeur de liaison, là, on peut faire beaucoup mieux. Je vous propose d'ajouter un
onglet dans la PropertyGrid qui sera dédié aux liaisons sur les propriétés.
Ce qui donnera :
dans cet onglet, au lieu d'éditer la valeur d'une propriété, on édite la liaison associée à la propriété ;
-7-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2010 Olivier Saint-Ouen. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://oliviersaintouen.developpez.com/dotnet/winforms/from-databinding-to-objectbinding/partie1-ergonomie/
Windows Forms - de la liaison de données à la liaison d'objets par Olivier Saint-Ouen
en double-cliquant sur une propriété, ou en cliquant sur l'icône sur sa gauche, on déroule les valeurs
correspondantes de la liaison, fournissant ainsi un accès séparé à ces valeurs et aux éditeurs associés ;
-8-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2010 Olivier Saint-Ouen. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://oliviersaintouen.developpez.com/dotnet/winforms/from-databinding-to-objectbinding/partie1-ergonomie/
Windows Forms - de la liaison de données à la liaison d'objets par Olivier Saint-Ouen
enfin, pour ceux qui sont allergiques à la PropertyGrid et ses niveaux hiérarchiques, en
cliquant sur le bouton d'édition à droite de la propriété, on affiche un éditeur classique.
Comme on n'a pas réinventé la roue, mais ajouté un troisième moyen d'édition des liaisons, les
modes d'édition standards sont toujours présents et fonctionnent toujours de la même façon.
Les nouveaux éditeurs supportent les propriétés imbriquées et les liaisons sur autre chose
que des sources de données.
Dans la preuve de faisabilité de cet article, il n'y a pas beaucoup de code intéressant.
Il y a beaucoup d'éditeurs visuels, qui sont de simples contrôles, beaucoup d'extensions pour faciliter l'écriture et la
lecture du code et presque aucun code concernant les liaisons de données directement.
Les seuls sujets qui méritent une explication (à mon avis) sont :
• comment ajouter un onglet à une PropertyGrid ;
• comment créer un éditeur utilisable dans une PropertyGrid.
Si vous n'êtes intéressé que par les liaisons, rendez-vous à l'étape suivante : .
-9-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2010 Olivier Saint-Ouen. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://oliviersaintouen.developpez.com/dotnet/winforms/from-databinding-to-objectbinding/partie1-ergonomie/
Windows Forms - de la liaison de données à la liaison d'objets par Olivier Saint-Ouen
L'onglet des liaisons peut être fourni par n'importe quel objet, cela n'a aucune importance.
Pour ajouter un onglet à une PropertyGrid, nous devons faire trois choses :
1 Créer un onglet en héritant de PropertyTab ;
2 Déclarer cet onglet sur un composant visuel via l'attribut PropertyTabAttribute en précisant sa portée via
l'énumération PropertyTabScope ;
3 Utiliser le composant visuel de l'étape précédente dans le concepteur Windows Forms.
Hériter d'un PropertyTab est plutôt simple (enfin, en fonction de ce que va faire votre
onglet bien évidemment) et peut se résumer comme suit :
• fournir les informations sur l'onglet via les propriétés Nom et Image ;
• spécifier quand l'onglet peut être utilisé via la méthode CanExtend ;
• fournir les descripteurs de propriétés via les méthodes GetDefaultProperty et GetProperties. Il s'agit de la
partie la plus complexe.
L'attribut PropertyTabAttribute ne peut pas être déclaré plusieurs fois sur un même objet.
Par contre, on peut l'hériter et spécifier plusieurs onglets via cet héritage. Pour cela, l'héritier
devra appeler la méthode InitializeArrays de sa base.
On peut accéder aux onglets d'une PropertyGrid via la propriété PropertyTabs.
- 10 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2010 Olivier Saint-Ouen. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://oliviersaintouen.developpez.com/dotnet/winforms/from-databinding-to-objectbinding/partie1-ergonomie/
Windows Forms - de la liaison de données à la liaison d'objets par Olivier Saint-Ouen
<PermissionSetAttribute(SecurityAction.Demand, Name:="FullTrust")>
Public Class BindingsPropertyTab
Inherits PropertyTab
- 11 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2010 Olivier Saint-Ouen. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://oliviersaintouen.developpez.com/dotnet/winforms/from-databinding-to-objectbinding/partie1-ergonomie/
Windows Forms - de la liaison de données à la liaison d'objets par Olivier Saint-Ouen
Else
Return TypeDescriptor.GetProperties(component, attributes)
End If
End Function
End Class
Les deux méthodes qui gèrent les liaisons sont HasBindings et GetBindings.
Ici, elles ne gèrent que les liaisons par défaut fournies par l'interface IBindableComponent.
La documentation sur cette classe est abondante, je vais juste résumer son utilisation
classique :
• définir son comportement visuel via la méthode GetEditStyle et la propriété IsDropDownResizable si
nécessaire ;
• écrire dans la méthode EditValue le code d'édition de la propriété ;
• déclarer son utilisation via l'attribut EditorAttribute ou en modifiant la méthode GetEditor d'un
PropertyDescriptor.
Exemples de déclaration :
• via les attributs ;
<Editor(GetType(DesignableBindingDataMemberSelectorEditor), GetType(UITypeEditor))>
• via la méthode GetEditor.
Public Overrides Function GetEditor(ByVal editorBaseType As Type) As Object
Return New DesignableBindingEditor
End Function
- 12 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2010 Olivier Saint-Ouen. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://oliviersaintouen.developpez.com/dotnet/winforms/from-databinding-to-objectbinding/partie1-ergonomie/
Windows Forms - de la liaison de données à la liaison d'objets par Olivier Saint-Ouen
If value Is Nothing OrElse Not TypeOf value Is DesignableBinding Then Return value
End Function
Toute la difficulté de l'utilisation des onglets de propriétés et des éditeurs visuels réside non pas dans les classes
elles-mêmes, mais dans l'architecture de services du concepteur Windows Forms.
Mieux on connaît cette architecture, plus facile est la gestion du « Design Time ».
La première chose à savoir, c'est que tous les services sont fournis par un objet du type IServiceProvider.
Dans le cas d'un UITypeEditor, ce fournisseur de services est passé en paramètre de la méthode EditValue.
On peut récupérer à tout instant ce fournisseur de services par d'autres moyens, notamment
par le biais du Site attaché à chaque composant puisque l'interface ISite hérite de l'interface
IServiceProvider.
Un petit conseil ; lorsque vous utilisez ces services, n'hésitez pas à utiliser des extensions pour
faciliter leur usage, sinon, une simple ligne, un simple appel peuvent vite devenir un enfer.
Exemple d'extension :
Namespace Extensions
<Extension()> _
Public Module ServiceExtensions
- 13 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2010 Olivier Saint-Ouen. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://oliviersaintouen.developpez.com/dotnet/winforms/from-databinding-to-objectbinding/partie1-ergonomie/
Windows Forms - de la liaison de données à la liaison d'objets par Olivier Saint-Ouen
Exemple d'extension :
#Region "IServiceProvider"
<Extension()>
Public Function GetService(Of TService As Class)(
ByVal SP As IServiceProvider) As TService
If SP Is Nothing Then Return Nothing
Return TryCast(SP.GetService(GetType(TService)), TService)
End Function
#End Region
End Module
End Namespace
• IComponentChangeService : http://msdn.microsoft.com/fr-fr/library/
system.componentmodel.design.icomponentchangeservice.aspx
• IDesignerHost : http://msdn.microsoft.com/fr-fr/library/
system.componentmodel.design.idesignerhost.aspx
• IExtenderListService : http://msdn.microsoft.com/fr-fr/library/
system.componentmodel.design.iextenderlistservice.aspx
• IExtenderProviderService: http://msdn.microsoft.com/fr-fr/library/
system.componentmodel.design.iextenderproviderservice.aspx
• IReferenceService : http://msdn.microsoft.com/fr-fr/library/
system.componentmodel.design.ireferenceservice.aspx
• ISelectionService : http://msdn.microsoft.com/fr-fr/library/
system.componentmodel.design.iselectionservice.aspx
• ITypeDiscoveryService : http://msdn.microsoft.com/fr-fr/library/
system.componentmodel.design.itypediscoveryservice%28v=VS.100%29.aspx
• ITypeResolutionService : http://msdn.microsoft.com/fr-fr/library/
system.componentmodel.design.ityperesolutionservice.aspx
• IPropertyValueUIService : http://msdn.microsoft.com/fr-fr/library/
system.drawing.design.ipropertyvalueuiservice.aspx
• IUIService : http://msdn.microsoft.com/fr-fr/library/system.windows.forms.design.iuiservice
%28v=VS.100%29.aspx
• IWindowsFormsEditorService : http://msdn.microsoft.com/fr-fr/library/
system.windows.forms.design.iwindowsformseditorservice.aspx
III - Démonstration
Pour démontrer l'utilité de la solution proposée dans cet article, nous allons utiliser un modèle de données des plus
classiques qui soient et le lier à une représentation visuelle.
En plus de tout ça, nous allons ajouter un contrôle qui va se lier à un autre contrôle (sans passer par une source
de données).
<PropertyTab(GetType(BetterAccessibility.BindingsPropertyTab), PropertyTabScope.Document)>
Public Class PersonModel
Inherits Component
- 14 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2010 Olivier Saint-Ouen. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://oliviersaintouen.developpez.com/dotnet/winforms/from-databinding-to-objectbinding/partie1-ergonomie/
Windows Forms - de la liaison de données à la liaison d'objets par Olivier Saint-Ouen
<DisplayName("Prénom")>
Public Property FirstName As String
<DisplayName("Nom")>
Public Property LastName As String
<DisplayName("Adresse")>
<DesignerSerializationVisibility(DesignerSerializationVisibility.Content)>
Public ReadOnly Property Address As AddressModel
Get
Return Me._Address
End Get
End Property
End Class
<TypeConverter(GetType(ExpandableObjectConverter))>
Public Class AddressModel
<DisplayName("Adresse")>
Public Property Address As String
<DisplayName("Complément d'adresse")>
Public Property Complement As String
<DisplayName("Code postal")>
Public Property PostalCode As Int32
<DisplayName("Ville")>
Public Property City As String
End Class
Ce modèle est une adaptation du premier modèle utilisé dans cet article.
Le modèle racine est un composant afin de pouvoir l'inclure dans la vue.
Il active aussi l'onglet de liaison. N'importe quel autre objet aurait pu remplir ce rôle.
- 15 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2010 Olivier Saint-Ouen. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://oliviersaintouen.developpez.com/dotnet/winforms/from-databinding-to-objectbinding/partie1-ergonomie/
Windows Forms - de la liaison de données à la liaison d'objets par Olivier Saint-Ouen
Les TextBox en lecture / écriture sont reliées aux propriétés correspondantes sur les modèles.
- 16 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2010 Olivier Saint-Ouen. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://oliviersaintouen.developpez.com/dotnet/winforms/from-databinding-to-objectbinding/partie1-ergonomie/
Windows Forms - de la liaison de données à la liaison d'objets par Olivier Saint-Ouen
Enfin la TextBox servant de clone est reliée, comme le montre l'image, à la TextBox du nom.
- 17 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2010 Olivier Saint-Ouen. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://oliviersaintouen.developpez.com/dotnet/winforms/from-databinding-to-objectbinding/partie1-ergonomie/
Windows Forms - de la liaison de données à la liaison d'objets par Olivier Saint-Ouen
III-C - Conclusion
La démonstration de cet article est loin d'être parfaite, elle peut être améliorée de diverses
manières.
Néanmoins, la preuve est faite, il est possible d'améliorer l'ergonomie des liaisons, et ce, sans
toucher aux liaisons en question.
D'ailleurs, en ce faisant, nous avons pu observer et corriger une autre lacune / manque
des éditeurs standards : ceux-ci ne permettent pas d'éditer des liaisons en dehors de celles
proposées pas les sources de données, or, le moteur de liaison le supporte parfaitement.
Ceci conclut cet article, mais pas cette série ; prochaine lacune : « des liaisons sur les composants ». On pourra
y observer la magie de certains patrons de conception.
- 18 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2010 Olivier Saint-Ouen. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://oliviersaintouen.developpez.com/dotnet/winforms/from-databinding-to-objectbinding/partie1-ergonomie/
Windows Forms - de la liaison de données à la liaison d'objets par Olivier Saint-Ouen
Remerciements
J'adresse ici tous mes remerciements à tous les membres de l'équipe de rédaction de "developpez.com" pour le
temps qu'ils ont bien voulu passer à la correction et à l'amélioration de cet article.
Merci à Jacques Jean pour ses corrections et sa relecture attentive ainsi qu'à Philippe Vialatte pour son accueil
dans l'équipe et ses conseils.
Si vous constatez une erreur dans l'article, dans les sources ou pour toute autre information, n'hésitez pas à me
contacter via le forum de l'article.
- 19 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par
les droits d'auteur. Copyright ® 2010 Olivier Saint-Ouen. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
https://oliviersaintouen.developpez.com/dotnet/winforms/from-databinding-to-objectbinding/partie1-ergonomie/