La liaison de données pour une classe personnalisée en C#

J'ai une classe comme ceci:

public class Person
{
    Int32 id;
    Boolean isMarried = false;
    String displayName;
    Detail mainDetail = new Detail();
    Detail partnerDetail = new Detail();
}

public class Detail
{
    String firstName;
    String lastName;
    DateTime dob;
    String address;
}

Et puis un Formulaire qui a sélectionné des zones de texte pour afficher les informations à l'objet. C'est être mis à jour lorsque la personne sélectionnée est modifiée.

Maintenant, pour de simples domaines, tels que l'affichage, c'est un morceau de gâteau:

txtTitle.DataBindings.Add("Text", selectedPerson, "displayName");

mais comment puis-je lier une autre zone de texte pour le prenom de la mainDetail propriété?

Cette tentative:

txtFirstNameMain.DataBindings.Add("Text", selectedPerson.mainDetail, "firstName");

renvoie une erreur d'exécution:

"Ne peut pas se lier à la propriété ou de la colonne firstName sur la source de données.
Nom du paramètre: dataMember"

Merci pour votre aide!

  • Vous devez utiliser des propriétés publiques, mais je ne pense pas que c'est votre problème, sinon pas de liaison serait de travailler. - Je suppose que vous venez de rendre le code plus petite de poster.
InformationsquelleAutor user176504 | 2009-09-21