Winforms la Liaison de Données pour la Classe Personnalisée
Je suis en train de lier certains Winform objets d'une classe personnalisée, plus précisément une instance de ma classe personnalisée que j'ai ajouté à la Forme dans le code. C#, .NET 2010 Express.
Par exemple, voici un fragment de la classe, et le UserInfoForm
public class UserInfo
{
[XmlAttribute]
public string name = "DefaultName";
[XmlAttribute]
public bool showTutorial = true;
[XmlAttribute]
public enum onCloseEvent = LastWindowClosedEvent.Exit;
}
public enum LastWindowClosedEvent
{
MainMenu,
Exit,
RunInBackground
}
public partial class Form1 : Form
{
UserInfo userToBind = new UserInfo();
TextBox TB_userName = new TextBox();
CheckBox CB_showTutorial = new CheckBox();
ComboBox DDB_onCloseEvent = new ComboBox();
public Form1()
{
InitializeComponent();
}
}
Maintenant, je voudrais lier les valeurs de ces contrôles de formulaire à leur valeur respective dans userToBind, mais n'ont eu aucune chance. Tous les tutoriels que je peux trouver sont de toute façon hors de date (2002), ou sur la liaison de contrôles à un ensemble de données, ou tout autre type de base de données.
Je suis évidemment donnant sur quelque chose, mais je n'ai pas trouvé ce que.
Merci beaucoup pour toute info, vous pouvez partager.
Plus d'infos: UserInfo est conçu pour être XML-friendly de sorte qu'il peut être enregistré en tant qu'utilisateur le profil. UserInfo contiennent d'autres XML personnalisé classes, tous imbriqués dans la UserInfo, et de nombreux contrôles aurez seulement besoin d'accéder à ces classes enfant.
OriginalL'auteur Tinkerer_CardTracker | 2011-10-23
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le DataBindings propriété de votre contrôle (zone de texte, case à cocher...) pour ajouter une liaison à un contrôle spécifique. Par exemple:
Aussi, autant que je me souvienne, la liaison de données ne fonctionne que sur propriétés, de sorte que vous aurez d'abord besoin de modifier votre
UserInfo
classe en conséquence. En outre, si vous voulez de l'INTERFACE utilisateur de mettre à jour automatiquement lors de la modification de vos objets dans le code, vous devez mettre en œuvre INotifyPropertyChanged dans vos classes personnalisées.C'est un vieux post, mais si quelqu'un à des vents jusqu'ici, il est intéressant de noter que vous pouvez désormais éviter les chaînes statiques dans la liaison de données - TB_userName.DataBindings.Ajouter(nameof(TB_username.Texte), userToBind, nameof(userToBind.nom));
OriginalL'auteur Julien Poulin