Τα events για τα οποία έγραψα μπορείς να τα βρεις στο
http://msdn2.microsoft.com/en-us/library/system.windows.forms.binding_events.aspx.
Κοντολογίς, για να γίνει η σύνδεση μεταξύ control και πεδίου, και να γίνει αριθμητικό formatting, o κώδικας που γεννά o designer πρέπει να περιέχει κάτι τέτοιο:
textBox1.DataBindings.Add(new Binding("Text", dataSource, "Amount", true, DataSourceUpdateMode.OnPropertyChanged, "C2");
To "C2" δηλώνει αξιακή μορφοποίηση με δύο δεκαδικά (θα περιέχεται και το σύμβολο του νομίσματος). Με αυτό, θα πρέπει να βλέπεις πάντα το περιεχόμενο του text box σωστά φορμαρισμένο. Αν θέλεις να παίξεις με το Format event, τότε θα κάνεις κάτι τέτοιο:
Binding b = new Binding("Text", dataSource, "Amount");
b.Format += new delegate(object sender, ConvertEventArgs e)
{
if (e.DesiredType == typeof(string) && e.Value is decimal)
{
e.Value = ((decimal)e.Value).ToString("C2");
}
};
textBox1.DataBindings.Add(b);
Θα μου συγχωρέσεις τη C# και τυχόν λάθη γιατί γράφω από μνήμης.
Νατάσα Μανουσοπούλου