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

Était-ce utile?

La solution

À quoi la zone de texte est-elle liée à ce stade? Je suggérerais ce qui suit:

  1. 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
  2. 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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top