我们是否可以在WPF ComboBox中使用DataTextField和DataValueField等功能。
我有这个问题:
Select UID, EmployeeName from tblSystemEmployee;
我想在组合框中显示EmployeeName,但它一直显示UID。有什么办法可以实现吗?谢谢你的帮助?
这就是我填充数据集的方式:
Try
cbEmp.Items.Clear()
Dim QueryString As String = "SELECT UID, EmployeeName FROM tblSystemEmployee"
Dim drow As DataRow
drow = Nothing
dsEmp = New DataSet
dsEmp = GetResult(QueryString, True)
If IsValidDataset(dsEmp) Then
For Each drow In dsEmp.Tables(0).Rows
cbEmp.Items.Add(drow(0).ToString())
Next
End If
答案 0 :(得分:3)
您需要显示DisplayMemberPath
属性
以及值<{p>的SelectedValuePath
属性
<Combobox DisplayMemberPath="EmployeeName" SelectedValuePath="UID" />
然后您可以使用SelectedItem
属性访问整个所选对象(例如UID,EmployeeName对),但如果您只想要UID,那么SelectedValue
属性就是您所需要的。
您可以在MSDN上了解有关这些属性的更多信息:
要使用值填充ComboBox,您需要使用列表设置ItemsSource属性:
而不是cbEmp.Items.Clear()
使用cbEmp.ItemsSource = Nothing
和
和
If IsValidDataset(dsEmp) Then
cbEmp.ItemsSource = dsEmp.Tables(0).DefaultView
End If
关于WPF databinding and comboboxes的好介绍文章。
答案 1 :(得分:1)
您要查找的属性包括:DispalyMemberPath
和SelectedValuePath
。