よし、紳士、
vb.netコンボボックスでアイテムを検索しようとしています。コンボボックスはすでにデータセットにバインドされています。表示メンバーは、選択したレコードの1列だけを表示するように設定されています。コンボに表示されるオブジェクトがカスタマイズされたクラスになるように、最初に設定しました。このクラスでは、追跡したいすべてのプロパティを指定しましたが、それはうまく機能しているようです。ただし、バインドされた状態でコンボボックスを使用しているため、データを操作するのははるかに困難です。
ミッション:ユーザーに番号を入力させるには、番号がComboBoxに含まれている場合、コンボボックスはそのレコードに移動して、そのコントロールにバインドされている他のすべてのアイテムも更新されるようにする必要があります。
調査:System.Windows.Forms.BingingManagerBaseクラスを調べましたが、必要な情報が含まれているようです。それと私がやろうとしていることとの間の架け橋を理解することはできません。何かをまとめたいので、コンボボックス内のテキストのデータセットに対してSQL検索を実行しようとしました。残念ながら、これには遅延バインディングが必要であり、ターゲットバージョンの.NetCompactFrameworkはそれをサポートしていません。
これが私が試みていた遅延バインディングの例です。(私はVB.net 2005、CompactFramework3.5を使用しています。
For i as integer = 0 to combobox.items.count - 1
dim Dsr as Dataset.Row
dim dv as dataview
Dsr = DirectCase(Dv.row, Dataset.Row)
If Dsr(i).DesiredColumn = DesiredRow.Desiredcolumn then
'Do such and such code
End If
Next
クエリに一致する特定のレコードをデータセットで検索できるようにしたい。クエリに一致する行を見つけたら、コンボボックスをSQLクエリで見つかった行に移動できるようにします。主な問題は、コンボがDatarowviewsで機能し、私のデータセットが主にDSに関連する行にキャストされることです。
誰もがこれについていくらかの洞察を持っているので、それは大いにありがたいです。
再度、感謝します!