begin process at 2012 02 11 18:39:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Formulaire / Winforms / Controls

 > 

[databinding] formatter/parser les propriétés d'objets bindés.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[databinding] formatter/parser les propriétés d'objets bindés.

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ée 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 [ par cudenetf ] Bonjour, j'ai un petit souci j'utilise un datagridview avec 4 colonnes que je rempli a la main (j'ajoute les lignes a la main) dataGridView1.Rows.Add( 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 héberger des contrôles dans des cellules DataGridView Windows Forms [ par 22783208 ] Bonjour à tout le monde. Je souhaite héberger un contrôle qui s'appelle "DataGridViewSearchColumn" dans des cellules DataGridView Windows Forms. C Tri personnalisé dans un datagridview [ par alexbesn ] Bonjour. Je possède une colonne dans mon Dgv qui contient des adresses IP. Lorsque je clique sur l'entête pour les trier, il me trie bien les adresse datagridview n'affiche aucun ligne [ par 22783208 ] Bonjour à tout le monde, j'ai un datagridview dans un "classe component"; J'affecte à datasource de datagridview un datatable. voila mon code: [cod Datagridview & currencymanager : comment récupérer la valeur d'une cellule ? [ par lolall03 ] Bonjour, J'ai une DB Mysql(ODBC), et une architecture 3couches(interface, business et accès aux données) Je remplis un datagridview avec ma table de


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,059 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales