2009-04-22 27 views
0

ich zwei Klassen erstellt haben:Datagridview mit Comboboxen

public class Params : List<Param> 
{ 

} 

public class Param 
{ 
    public enum enType 
    { 
     Integer, 
     Double, 
     String, 
     DateTime 
    } 

    private string sName_m; 
    public string Name 
    { 
     get { return sName_m; } 
     set { sName_m = value; } 
    } 

    private string sValue_m; 
    public string Value 
    { 
     get { return sValue_m; } 
     set { sValue_m = value; } 
    } 

    private enType eType_m; 
    public enType Type 
    { 
     get { return eType_m; } 
     set { eType_m = value; } 
    } 
} 

Jetzt möchte ich die Params in einem Raster-Steuerelement auf einer Windows-Anwendung zeigen zu können, so schleppte ich eine Datagridview auf meiner Form, und Wählen Sie eine Datenquelle, indem Sie Andere Datenquellen -> Projektdatenquelle auswählen und dann meine Params-Klasse (frmMain + Params) auswählen.

Jetzt, wenn ich die App ausführen, kann ich Datensätze hinzufügen/löschen/bearbeiten und das Raster zeigt die drei Spalten. Was ich gerne tun könnte, ist, dass die Type-Spalte ein Drop-Down-Objekt ist, das meine Auswahlwerte in der Enumeration enthält. Zur Zeit muss ich eine Zeichenfolge eingeben, die mit der Enumeration übereinstimmen muss. Möglich?

Antwort

1

Ich konnte die automatische Datenbindung nie richtig einrichten (DataGridViewComboBoxCell/DataGridViewComboBoxColumn) richtig (noch die CheckBox), also habe ich AutoGenerateColumns auf false gesetzt und manuell die Spalten eingerichtet.

+0

Ok, ich habe die Datenquelle entfernt und Spalten manuell eingerichtet, ich sehe keine AutoGenerateColumns-Eigenschaft im DataGridView-Steuerelement. – Jeremy

+0

Diese Eigenschaft ist im Designer nicht verfügbar, Sie müssen sie explizit codieren. Außerdem müssen Sie die Datenquelle nicht entfernen. Die Datenbindung funktioniert weiterhin mit manuell eingerichteten Spalten, solange Sie die Eigenschaften DataPropertyName und ValueType beim Instanziieren der Spalte festlegen. –

1

Sie können die automatische Generierung der Spalten deaktivieren und manuell die gewünschten gewünschten Spalten erstellen, oder Sie können die Spalte entfernen und an ihrer Stelle eine neue Spalte hinzufügen.