我有一个包含星期几的下拉列表 - 星期一到星期日。它填充了用户定义的两个值类型,将一周中的数字日期映射到它的名称。
Public Structure WeekDays
Public ID As Integer
Public Text As String
Public Overrides Function ToString() As String
Return Me.Text
End Function
End Structure
我要绑定的对象有一个整数属性 DayOfWeek,我想将下拉列表中选定项的 ID 值绑定到对象的 DayOfWeek 属性。例如。用户选择星期四,将 ID 4 传递给对象。
在代码中,我可以检索 SelectedItem 的 UDT,但无法确定要绑定到组合框上的哪个属性。
- 如果我将 UDT 直接添加到下拉列表的 Items 集合中,则 SelectedValue 为 Nothing。
- 如果我将 UDT 添加到 List(Of UDT) 集合并将其设置为下拉列表的数据源,并将 ValueMember 设置为 ID 并将 DisplayMember 设置为 Text,则 SelectedValue 返回整个 UDT,而不是 ValueMember 属性中指示的 ID。
数据绑定似乎对纯文本框非常有效,但在处理更复杂的控件时似乎变得更加棘手。
更新:我正在寻找的是 Binding 语句。例如。两者都不...
oB = New Binding("SelectedItem", Payroll, "DayOfWeek")
oB = New Binding("SelectedItem.ID", Payroll, "DayOfWeek")
...有效。第一个被忽略(可能是因为 SelectedItem 属性为 Nothing),第二个因“无法绑定...”错误而失败。