Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : [databinding] formatter/parser les propriétés d'objets bindés. [ Windows / Formulaire / Winforms / Controls ] (mathmax)

vendredi 9 novembre 2007 à 12:38:58 | [databinding] formatter/parser les propriétés d'objets bindés.

mathmax

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

****************************************


samedi 10 novembre 2007 à 11:59:07 | Re : [databinding] formatter/parser les propriétés d'objets bindés.

Bidou

Administrateur CodeS-SourceS
Petit exemple pour le formattage:

publicpartialclassForm1 : Form
{
  
public Form1()
   {
     
this.InitializeComponent();
   }

  
privatevoid Form_Load(object sender, EventArgs e)
   {
     
List<Product> ps = newList<Product>();
      ps.Add(
newProduct("p1", 3423));
      ps.Add(
newProduct("p2", 342343));
      ps.Add(
newProduct("p3", 33));
      ps.Add(
newProduct("p4", 0.23f));
      ps.Add(
newProduct("p5", 34234324));
     
this.dataGridView.DataSource = ps;
     
this.dataGridView.Columns["price"].DefaultCellStyle.Format = "c";
   }
}

publicclassProduct
{
  
privatestring _name = String.Empty;
  
privatefloat _price = 0f;

  
public Product(string name, float price) { this._name = name; this._price = price; }

  
publicstring Name { get { returnthis._name; } }
  
publicfloat Price { get { returnthis._price; } }
}




-My Blog-

samedi 10 novembre 2007 à 15:32:26 | Re : [databinding] formatter/parser les propriétés d'objets bindés.

mathmax

Ok mais ça reste limitté. On ne peut pas définir sa propre méthode de formattage ?
Quand est-il pour le parsage ?
Et pour afficher une sous propriété de laa propriété Quantity de product ? Par exemple afficher la propriété Value de Quantity dans une colonne de la DataGridView.

public
classProduct
{
  
private string _name = String.Empty;
  
private float _price = 0f;

  
public Product(string name, float price) { this._name = name; this._price = price; }

  
public string Name { get { return this._name; } }
  
public float Price { get { return this._price; } }
   public Quantity Quantity { get { return this._price; } }
}

publicclass Quantity
{
   
public float Value {get; set;}
    ...
}


Mathmax

****************************************


mercredi 14 novembre 2007 à 02:57:48 | Re : [databinding] formatter/parser les propriétés d'objets bindés.

mathmax

Pas d'idée ?

Mathmax

****************************************


mercredi 14 novembre 2007 à 10:02:47 | Re : [databinding] formatter/parser les propriétés d'objets bindés.

Bidou

Administrateur CodeS-SourceS
Non pas d'idée dans l'immédiat, sorry...



-My Blog-

mardi 20 novembre 2007 à 00:20:39 | Re : [databinding] formatter/parser les propriétés d'objets bindés.

ShareVB

salut,

tu peux peut être essayer avec l'interface ICustomTypeDescriptor qui doit te permettre d'ajouter des propriétés dynamquement pour le binding...je n'ai jamais creusé le sujet...

ShareVB



Cette discussion est classé dans : datagridview, value, parse, databinding, formatter


Répondre à ce message

Sujets en rapport avec ce message

databinding [ par nicodemy ] Bonjour à tous,Débutant en csharp, j'ai assez de mal trouver comment lier un dataGridView ou une texteBox à un dataset via un Composant bindingSource. DataBinding, Grid [ par Cisaks ] J'ai besoins d'aide je craqueeeeeVoila j'ai une datagridview ou il a un DataSource pas de soucy je vois les champs de ma table.J'ai des autants de Tex DataGridView et combobox [ par kaoutara_hajji ] Bonjour tout le monde , ca fait une semaine que je bloque sur un probleme et j'arrive pas a le resoudre , et j'espere que vous puissiez m'aider, j'ai DataBinding DataGridView [ par raph8277 ] Voila je bind des double pour un datagridView et il me retourne Non Numérique dans chaque cellules, faut t'il que je convertisse mes double en string. ComboBox dans un DataGridView [ par pkmnlio ] Bonjour,J'utilise une procedure stockee pour remplir mon datagridview.Je le rempli donc directement par le code avec la propriete datasource, et en de Conserver les couleurs de ligne lors d'un tri d'un datagridview [ par puman ] salut, J'ai un datagridview avec x colonnes. j'ai un bouton qui permet d'ajouter des lignes à la fin de mon tableau. Ces nouvelles lignes ont une co DataGridView Actualiser [ par pkmnlio ] Bonjour,J'ai un petit probleme lors de l'actualisation de mon DataGridView, apres avoir fait un modification d'une des cellules, la requete d'update e Image dans DataGridView [ par Le grand Jisay ] Bonjour tout le monde, Voici mon problème, j'ai une application qui gère un stock de CD. J'ai un datagridview qui contient les colonnes avec le nom de DataGridView + evenement sur les bouttons dedans [ par narfight ] Bonjours à tous,Je voudrais ajouter à la fin des colonnes de ma DataGridView des bouttons (ce qui est fait) mais je n'arrive pas a les liers a des eve Datagridview elementaire [ par olibara ] BonjourPour une saisie de données je dois presenter une ligne de 10 TextBox et 10 labels pour entrer 10 chiffres de 1 a 20J'ai pensé qu'un datagridvie


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 10,561 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.