【发布时间】:2009-09-05 14:40:44
【问题描述】:
我有一个包含星期几的下拉列表 - 星期一到星期日。它填充了用户定义的两个值类型,将一周中的数字日期映射到它的名称。
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,而不是 ID ValueMember 属性。
数据绑定似乎对纯文本框非常有效,但在处理更复杂的控件时似乎变得更加棘手。
更新:我正在寻找的是 Binding 语句。例如。也没有……
oB = New Binding("SelectedItem", Payroll, "DayOfWeek")
oB = New Binding("SelectedItem.ID", Payroll, "DayOfWeek")
... 有效。第一个被忽略(可能是因为 SelectedItem 属性为 Nothing),第二个失败并出现“无法绑定...”错误。
【问题讨论】:
标签: .net winforms data-binding business-objects