WPF ComboBox中的DataTextField和DataValueField?

时间:2012-08-20 20:29:47

标签: wpf visual-studio-2010 vb.net-2010

我们是否可以在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

2 个答案:

答案 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)

您要查找的属性包括:DispalyMemberPathSelectedValuePath