2010-10-14 6 views
7

Existe-t-il un moyen facile de cataloguer une étiquette ET d'inclure du texte personnalisé?Connecter une étiquette en C# avec du texte supplémentaire?

Bien sûr, je peux lier une étiquette comme ceci:

someLabel.DataBindings.Add (nouvelle liaison ("Texte", this.someBindingSource, "SomeColumn", true)); Mais comment ajouter du texte personnalisé, de sorte que le résultat serait quelque chose comme: someLabel.Text = "Texte personnalisé" + databoundColumnText;

Dois-je vraiment recourir à du code personnalisé ...?

(peut-être ma tête est trop embué de mon froid et je ne peux pas voir une solution simple?)

TIA pour toute aide à ce sujet.

+0

Vous devez marquer cette question pour la technologie de l'interface utilisateur spécifique (WinForms je suppose). – SKG

+0

Vous avez raison, désolé à ce sujet. Ajouté le tag –

+0

Merci pour la question et la réponse. Comment vous assurez-vous que vous sauvegardez seulement le databoundColumnText, sans le "texte personnalisé"? – Stavros

Répondre

14

Vous pouvez toujours utiliser l'événement Binding.Format.

http://msdn.microsoft.com/en-us/library/system.windows.forms.binding.format.aspx

L'événement Format est élevée lorsque les données est poussé à partir de la source de données dans le contrôle. Vous pouvez gérer l'événement Format pour convertir les données non formatées de la source de données en données formatées pour l'affichage.

Quelque chose comme ...

private string _bindToValue = "Value from DataSource"; 
    private string _customText = "Some Custom Text: "; 
    private void Form1_Load(object sender, EventArgs e) 
    { 
     var binding = new Binding("Text",_bindToValue,null); 
     binding.Format += delegate(object sentFrom, ConvertEventArgs convertEventArgs) 
           { 
            convertEventArgs.Value = _customText + convertEventArgs.Value; 
           }; 

     label1.DataBindings.Add(binding); 
    } 
+0

+1 J'ai utilisé cette solution exacte dans un de mes projets –

+0

Oui, je l'ai juste essayé et fonctionne comme un charme. MERCI! (Impossible d'ajouter un score, parce que je suis un débutant sur ce formulaire ... Eh bien, la prochaine fois) –

+0

Vous pouvez le marquer comme une réponse si :-) – SKG

1

Je ne connais pas de façon simple, mais ce qui devrait fonctionner est une classe dérivée avec une propriété supplémentaire qui renvoie le texte modifié.

class FooAppendedText : FooText 
{ 
    public String AppendedText { get { return this.Text + " xyz"; }} 
} 
+0

Ce n'était pas ce que je cherchais, mais merci quand même! –

Questions connexes