DataGridViewComboBoxColumn DataGridViewComboBoxCell-Wer ist ungültig.

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Gelöschter Benutzer.

    DataGridViewComboBoxColumn DataGridViewComboBoxCell-Wer ist ungültig.

    Hallo,

    kann mir jemand sagen, warum ich bei folgendem Code den Fehler "DataGridViewComboBoxCell-Wer ist ungültig" bekomme, wenn ich nach einer Auswahl in der ersten Spalte in die zweite klicke?
    Bzw. Was stimmt am code nicht? Ich habe das Projekt an den Post angehängt.

    VB.NET-Quellcode

    1. Imports System.ComponentModel
    2. Imports System.Linq
    3. Imports System.Xml.Serialization
    4. Public Class Form1
    5. Dim data As New List(Of MigrationField)
    6. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    7. data.Add(New MigrationField With {.Source = "BLA"})
    8. Dim column As DataGridViewComboBoxColumn = New DataGridViewComboBoxColumn()
    9. column.DataSource = [Enum].GetValues(GetType(MigraionFieldType))
    10. column.DataPropertyName = "Destination"
    11. Me.DataGridView1.Columns.Add(column)
    12. Me.DataGridView1.AutoGenerateColumns = True
    13. Me.DataGridView1.DataSource = Me.data
    14. End Sub
    15. End Class
    16. Public Class MigrationField
    17. <DisplayName("Migration Var Name")>
    18. Public Property Source As String
    19. <DisplayName("Migration Typ"), Browsable(False)>
    20. Public Property Destination As MigraionFieldType
    21. End Class
    22. Public Enum MigraionFieldType
    23. ID
    24. Variable
    25. Version
    26. Revision
    27. End Enum
    Dateien

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gelöschter Benutzer“ ()

    Ok, es scheint so, als dürfe man die Eigenschaft nicht auf Browsable(false) setzen.

    Generell finde ich die Möglichkeiten beim automatischen Erstellen von DatagridviewColumns etwas schlecht umgesetzt vom Framework. Ma muss die von der BindingSource automaisch erzeugte Spalte erst mal entfernen und dann eine DataGridViewComboBoxColumn einfügen. Ich meine, warum kann das Datagridview beim erzeugen der Columns nicht erkennen, dass der Datentyp eine Aufzählung ist und damit gleich die Möglichkeit bieten dies als DatagridviewComboboxcolumn anzuzeigen.

    Hat jemand ein Beispiel, wie man ein Datagridview so vererben kann, dass man beim erstellen der Column gleich prüfen kann, welchen Typ die Spalte beinhalten soll und dann dementsprechend gleich eine DataGridViewComboboxColumn erzeugen lassen?