Bonjour,
J'aimerais savoir si il y a un moyen de formatter/parser les valeurs d'une colonne d'une DataGridView bindée à une datasource.
Par exemple, la DataGridView est bindée à une liste de produits. Un
objet produit possède une propriété prix qui est de type float. Dans la
colonne prix de la DataGridView on souhaite afficher le prix suivit de
la devise. Je sais que cela est possible à faire avec une textbox par
exemple. Il suffit d'écrire cela :
...
Binding b = new Binding("Text", order, "Price");
b.Format += new ConvertEventHandler(b_Format);
b.Parse += new ConvertEventHandler(b_Parse);
textBox1.DataBindings.Add(b);
}
void b_Parse(object sender, ConvertEventArgs e)
{
e.Value = decimal.Parse((string) e.Value, NumberStyles.Currency);
}
void b_Format(object sender, ConvertEventArgs e)
{
e.Value = ((decimal) e.Value).ToString("C");
}
Mais est ce possible quand les sources sont des collections comme dans le cas d'une DataGridView ?
D'autre part j'ai une propriété de type Quantity dans ma classe Product
et je souhaiterais afficher dans une des colonnes de ma DataGridView,
non pas la valeur de sa méthode ToString() mais l'une de ces
propriétés, en l'occurrence sa propriété Value de type float. Est ce
possible ?
Pour l'instant j'ai réussi à résoudre ces 2 problèmes en écrivant ma
CustomSourceView (classe implémentant ITypedList) et en récrivant les
propertyDescriptor dans la méthode GetItemProperties(). Mais j'aurais
aimé savoir si il y une méthode plus simple/traditionnelle de procéder
pour ces 2 cas de figures. Y t-il des pros du databinding dans le coin
?

Merci d'avance pour vos suggestions.
Mathmax
****************************************
