2009-05-22 4 views
5
gezeigt werden

Ich versuche, ein Datagridview auf eine Liste zu binden, wo MyObject wieBinding Datagridview auf eine List <>, sollten einige Eigenschaften nicht

class MyObject 
{ 
    public string Property1 { get; set; } 
    public string Property2 { get; set; } 
} 

//List<MyObject> objects; 
grid.Columns[0].DataPropertyName = "Property1"; 
grid.DataSource = objects; 

ich nur eine Eigenschaft angezeigt werden, wollen aussieht, sondern Ich bekomme eine weitere Spalte zu meiner DataGridView hinzugefügt, wo die Property2 auch angezeigt wird. Wie kann ich verhindern, dass es hinzugefügt wird?

Antwort

9

Wenn Sie nie diese Eigenschaft wollen angezeigt:

class MyObject 
{ 
    public string Property1 { get; set; } 
    [Browsable(false)] 
    public string Property2 { get; set; } 
} 

Ansonsten, wie bereits erwähnt - gesetzt AutoGenerateColumns auf false und sie manuell hinzufügen.

2

Es klingt wie Sie die AutoGenerateColumns-Eigenschaft Ihres DataGridView-Steuerelements auf True festgelegt haben. Sie können sie entweder auf False setzen oder die Methode .Columns.Remove verwenden, um die Spalte zu entfernen, die Sie nicht sehen möchten.

0

Ich glaube, Sie müssen die Spalten manuell einrichten, wie Henk sagte. Vielleicht möchten Sie jedoch mehr Eigenschaften als in seinem Beispiel festlegen. Dies ist, was ich in einem Projekt getan habe:

Ich glaube, das obige funktioniert. Wenn Sie eine seltsame Ausnahmeprüfung erhalten, um sicher zu sein, dass die Spalten/Zellen Standardzellenstile definiert haben.

Verwandte Themen