2009-06-11 8 views
4

J'ai une liste d'objets (PrintJob) que je lie à un DataGridView. Voici une version réduite de l'objet PrintJob (Vous ne voulez pas vous ennuyer complètement !!):Liaison de données avec un objet personnalisé à datagridview - Texte d'en-tête de colonne

public class PrintJob 
{ 
     private long pagesToPrint; 
     public long PagesToPrint 
     { 
      get { return pagesToPrint; } 
     } 

     private long recipientRef; 
     public long RecipientRef 
     { 
      get { return recipientRef; } 
      set { recipientRef = value; } 
     } 
} 

et je fais une liste de ces objets et se lier à la datagridview comme ceci:

dataGridView1.DataSource = uiModel.GetPrintJobs(); 

tous bien? Tout affiche bien, sauf les en-têtes de colonne - qui montrent exactement le même que le nom Propery dans mon objet, par exemple "PagesToPrint" apparaît dans l'en-tête de colonne, où idéalement, je voudrais afficher "Pages To Print" dans l'en-tête texte.

Comment puis-je obtenir le texte en-tête de colonne pour afficher quelque chose d'un peu plus lisible - je suppose en fonction du nom de la propriété.

Cheers.

+0

(a répondu à commenter) –

Répondre

6
[DisplayName("Pages to print")] 
public long PagesToPrint {...} 

etc (avec using System.ComponentModel; en haut du fichier de code)

+0

Merci pour une réponse rapide! – Vidar

+0

Pouvez-vous également prédéfinir des largeurs de colonne et des choses comme ça avec des attributs? – Vidar

+1

Non, vous ne pouvez pas. Vous pouvez contrôler certaines choses comme le convertisseur de type (utilisé pour rendre et analyser la valeur), mais c'est à peu près tout. –

1

Oui, vous pouvez utiliser le concepteur avec une source de données liées. Définissez simplement la valeur de propriété "DataPropertyName" de chaque colonne dans le concepteur. Par exemple ... pour la colonne 1, la valeur de propriété "DataPropertyName" serait "PagesToPrint", tandis que la propriété "HeaderText" serait le texte réel ("Pages à imprimer"?) Que vous souhaitez afficher comme en-tête de colonne .

Questions connexes