ステータスとステータスIDを持つデータソース "StatusListBindingSource"にバインドされたコンボボックスがあります。見つかったアイテムのインデックスが必要です。私は、各ループ/のために使用しない以外これがうまく動作しMe.cmbResult.SelectedIndex
オブジェクト値を使用してコンボボックスアイテムのインデックスを検索
を設定するために、インデックスを使用します:
Private Sub SetStatusIndex(ByVal StatusValue As Integer)
Dim ItemIndex As Integer = -1
Dim ct As Integer = 0
For Each dView As DataRowView In Me.cmbResult.Items
If dView.Row.Item("StatusID") = StatusValue Then
ItemIndex = ct
Exit For
End If
ct += 1
Next
Me.cmbResult.SelectedIndex = ItemIndex
End Property
は、ここで私がやりたいものだ:
Dim a As ComboBox.ObjectCollection = Me.cmbResult.Items
'can't cast like this
Dim lisDRView As List(Of DataRowView) = a.Cast(Of DataRowView)()
'I'd like to use something like .find
Dim drView As DataRowView = lisDRView.Find(Function(x) x.Row.Item("StatusID") = StatusValue)
'there is no drView.index so this fails
Me.cmbResult.SelectedIndex = drView.index
しかし、私はa.Cast(Of DataRowView)()
上の例外を取得していますし、もちろん無効一切drView.index
はありませんキャスト例外: タイプ 'd__aa'1 [System.Data.DataRowView]' ' を' System.Collections.Generic.List`1 [System.Data.DataRowView] 'と入力するとキャストできません。
Findを使用して、指定されたStatusValueを持つアイテムのインデックスを取得するにはどうすればよいですか?