Contrôles utilisateur liés aux données dans .NET
-
03-07-2019 - |
Question
Je recherche des informations sur la manière d'implémenter correctement la liaison de données sur un contrôle créé par l'utilisateur.
My UserControl contient une zone de texte, un bouton et un calendrier mensuel. Je suis en mesure de lier la base de données à la zone de texte à l'intérieur de mon contrôle utilisateur. Toutefois, je souhaite implémenter la liaison de données sur le contrôle UserControl lui-même, et non pas faire référence à la zone de texte à l'intérieur du contrôle.
J'ai tenté de définir une propriété comme suit:
<System.ComponentModel.Bindable(True)> _
Public Property BoundDate() As DateTime
Get
Return _currentSelectedDate
End Get
Set(ByVal value As DateTime)
SetDateTime(value, True)
End Set
End Property
Toutefois, lorsque j'ajoute une source de liaison au contrôle, le champ ne remplit pas les données, il reste vide. Dois-je faire quelque chose pour que les données apparaissent après?
Quelqu'un peut-il m'indiquer un bon tutoriel ou, si possible, l'expliquer ici? Le projet est écrit en VB.NET.
MODIFIER : j'implémente le DefaultBindingPropertyAttribute
La solution
À quoi la zone de texte est-elle liée à ce stade? Je suggérerais ce qui suit:
- Dans l'événement de chargement du contrôle utilisateur, liez de manière déclarative la zone de texte à une variable membre privée, par exemple. private _boundDate as DateTime
- Avez-vous défini dans votre propriété boundDate update _boundDate
Cela semble être une très bonne lecture, même si je ne l'ai pas regardée moi-même