2009-07-31 2 views
0

Ich habe eine benutzerdefinierte Sammlung sagen lassenWie blende ich eine Eigenschaft der benutzerdefinierten Sammlung bei der Verwendung von DataGridView DataSource?

MyClass 
{ 
    prop Name; 
    prop Address; 
    prop isRequired; 
} 


MyCustomCollection : List<MyClass> 
{ 

} 

Als ich

tun
MyCustomCollection collection = new MyCustomCollection(); 
datagridView.DataSource = collection; 

Die Datagridview mit drei Spalten Name, Anschrift ausgefüllt ist, IsRequired ..

I isRequired Eigenschaft ausblenden möchten aus der Datagrid-Ansicht, wie kann ich das tun ...

und auch ich möchte es als eine Eigenschaft verwenden, in einer anderen Klassen einzuchecken ...

Antwort

0

Oder Sie können die sichtbare Eigenschaft der Spalte auf false setzen. Für jede Gruppe von Geschäftsdaten, die ich anzeigen möchte, verfolge ich die Anzahl der Spalten ganz links, die ich ausblenden möchte, da sie PK-Werte enthalten. Hier ist ein Beispiel:

 dgvDisplaySet.DataSource = _setSource 
    gridColsToHide = _displaySet.hidePKFields 
    For gridCol = 0 To dgvDisplaySet.Columns.Count - 1 
     dgvDisplaySet.Columns(gridCol).Visible = (gridCol >= gridColsToHide) 
    Next 
2

I verwendet [Browsable (false)]

MyClass {
prop-Name; prop Adresse; [Browsable (falsch)] prop isRequired; } zum Ausblenden der Spalte

1

das Browsable-Attribut ist in der Tat eine gute Option. Sie könnten AutoGenerateColumns auch auf false setzen und die Spalten manuell erstellen ...

+0

Danke für das Vorschlagen einer anderen Option Thomas. Thomas, gibt es irgendeinen Weg damit ich bestimmte Zeilen nur lesen kann. Angenommen, ich möchte diese Zeilen lesen lassen, deren IsRequired-Eigenschaft in MyClass –

+0

falsch ist. Es gibt eine Möglichkeit, dies zu tun, indem Sie das CellBeginEdit-Ereignis behandeln. Im Handler überprüfen Sie, ob die Zeile bearbeitet werden kann, und brechen das Ereignis ab (e.Cancel = true), wenn dies nicht möglich ist –

Verwandte Themen