月曜日から日曜日までの曜日を含むドロップダウンリストがあります。数値の曜日をその名前にマップする2つの値のユーザー定義型が移入されます。ユーザー定義型のドロップダウンリストへのデータバインド方法は?
Public Structure WeekDays
Public ID As Integer
Public Text As String
Public Overrides Function ToString() As String
Return Me.Text
End Function
End Structure
Iがバインドするオブジェクトは、整数プロパティのDayOfWeekを有し、そしてIは、物体上のDayOfWeekプロパティにドロップダウンリストで選択された項目のID値をバインドします。例えば。ユーザーは木曜日を選択し、4というIDがオブジェクトに渡されます。
コードでは、SelectedItemのUDTを取得することはできますが、バインドするコンボボックスのどのプロパティを処理することはできません。
- UDTをドロップダウンリストのItemsコレクションに直接追加すると、SelectedValueはNothingになります。
- UDTをList(Of UDT)コレクションに追加し、ドロップダウンのデータソースとして、ValueMemberをIDに設定しDisplayMemberをTextに設定した場合、SelectedValueはUDT全体を返します。 ValueMemberプロパティ。
データバインディングはプレーンテキストボックスではうまくいくように見えますが、より複雑なコントロールを扱う場合には、もっと難解なようです。
更新:私が探しているのは、Bindingステートメントです。例えば。どちらも...
oB = New Binding("SelectedItem", Payroll, "DayOfWeek")
oB = New Binding("SelectedItem.ID", Payroll, "DayOfWeek")
...作品はありません。最初のものは無視されます(SelectedItemプロパティがNothingなので)、Secondは "Can not bind ..."エラーで失敗します。
もっと良い解決策が出てくるかどうかを確認するには数日待つでしょう。 – Bill