2011-02-28 3 views
0

Est-il possible de créer une zone de texte ou un autre contrôle lié à une variable ou à une propriété? Je veux avoir un contrôle qui montrera la valeur actuelle d'un contrôle et mettra à jour la variable avec une nouvelle valeur si le contrôle change.Création d'un contrôle lié à une variable

Y at-il un contrôle que je pourrais télécharger qui a déjà ceci?

Répondre

1

Est-ce que DataBindings serait ce que vous cherchez? Associe un contrôle à une propriété:

myTextbox.databindings.add("text", classWithProperty, "propertyName") 

Voilà comment je l'ai fait en VB.NET, mais je suis un peu rouillé.

EDIT:

Je crois que vous avez besoin de mettre en œuvre INotifyPropertyChanged pour les valeurs à jour:

Public Class YourClassWithProperty 
Implements INotifyPropertyChanged 

Ensuite, faire une fonction:

Public Sub OnPropertyChanged(ByVal name As String) 
    RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(name)) 
End Sub 

Après, appelez la fonction dans votre propriété de zone "set":

Exemple:

Public Property Name() As String 
    Get 
     Return personName 
    End Get 
    Set(ByVal value As String) 
     personName = value 

     OnPropertyChanged("Name") 
    End Set 
End Property 

Exemples tirés de msdn: http://msdn.microsoft.com/en-us/library/ms743695.aspx

+0

C'est gentil. Toutefois, lorsque la valeur est mise à jour en dehors du contrôle, le contrôle n'affiche pas la nouvelle valeur. –

+0

Je pense que vous devez implémenter INotifyPropertyChange pour le mettre à jour. Ici, il est sur msdn http://msdn.microsoft.com/en-us/library/ms743695.aspx Appelez-le quand dans la zone de jeu de la propriété. – Shane

+0

J'ai dû ajouter la ligne ci-dessous à la classe avec la propriété pour le faire fonctionner. Sinon, merci! 'Public Event PropertyChanged (Expéditeur ByVal en tant qu'objet, ByVal e en tant que System.ComponentModel.PropertyChangedEventArgs) Implémente System.ComponentModel.INotifyPropertyChanged.PropertyChanged' –

0

Créez une simple zone de texte, ajoutez un événement par exemple'onLostFocus' et mettez à jour votre variable.

+0

Mais je peux lier en quelque sorte une variable au contrôle donc je ne dois écrire que pour chaque contrôle? –

+0

jeter un oeil à ce poste http://www.c-sharpcorner.com/Blogs/BlogDetail.aspx?BlogId=581 et laissez-moi savoir si c'était utile s'il vous plaît – JAiro

+0

ou si vous utilisez winforms :) http://msmvps.com/blogs/deborahk/archive/2009/09/16/binding-control-properties-to-business-object-properties.aspx – JAiro

Questions connexes