Die Linq-Abfrage hat einen impliziten Umwandlungsfehler für DataGridViewRow, wenn die Option strict aktiviert ist

Ich habe ein DataGridView, das an eine Liste von Objekten mit dem Namen "BaseChange" gebunden ist. Die BaseChange-Objekte bestehen aus 4 Eigenschaften ...

Typ ändernStatus ändernBeschreibung ändernLastChangeDate

Die Datagrid-Ansicht enthält Spalten für alle 4 Werte sowie eine 5. (eine Kontrollkästchenspalte mit dem Namen "colIsSelected"). Es ist kein Problem, die Liste an das Raster zu binden und die Elemente anzuzeigen.

Das Problem ist, dass die Abfrage, die die ausgewählten Elemente im Raster abruft, einen impliziten Umwandlungsfehler ausgibt, wenn die Option strict aktiviert ist.

Dies ist die Abfrage ...

Dim _changes As List(Of BaseChange)

_changes = (From _row As DataGridViewRow In dgvChanges.Rows() _
            Where Convert.ToBoolean(_row.Cells(NAME_COLUMN_IS_SELECTED).Value) = True _
            Select DirectCast(_row.DataBoundItem, BaseChange)).ToList()

... und mit der Option strict off werden die richtigen Ergebnisse erzielt. Das implizite Cast-Squiggle befindet sich im Code "_row As DataGridViewRow", und die vollständige Nachricht lautet "Implizite Konvertierung von 'Object' nach 'System.Windows.Forms.DataGridViewRow'".

Wenn ich "As DataGridViewRow" von der Abfrage ausschließe, erhalte ich einen späten Bindungsfehler für _row.Cells und _row.DataBoundItem, und dies schlägt auch bei der strengen Option fehl.

Ich brauche dies, um mit aktivierter Option Strict und in VB zu arbeiten. Vermisse ich hier etwas? Hat jemand Vorschläge?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage