2

有什么方法可以让我们在 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
4

2 回答 2

3

您需要DisplayMemberPath显示的SelectedValuePath属性和值的属性

<Combobox DisplayMemberPath="EmployeeName" SelectedValuePath="UID" />

然后,您可以使用该属性访问整个选定对象(例如 UID、EmployeeName 对),SelectedItem但如果您只想要 UID,那么该SelectedValue属性就是您所需要的。

您可以在 MSDN 了解有关属性工作原理的更多信息:

要使用值填充 ComboBox,您需要使用列表设置ItemsSource属性:

而不是cbEmp.Items.Clear()使用cbEmp.ItemsSource = Nothing

If IsValidDataset(dsEmp) Then
        cbEmp.ItemsSource = dsEmp.Tables(0).DefaultView
End If

一篇关于WPF 数据绑定和组合框的好介绍文章。

于 2012-08-20T20:34:40.753 回答
1

您正在寻找的属性是:DispalyMemberPathSelectedValuePath

于 2012-08-20T20:35:20.527 回答