首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF ComboBox中的DataTextField和DataValueField?

WPF ComboBox中的DataTextField和DataValueField?
EN

Stack Overflow用户
提问于 2012-08-21 04:29:47
回答 2查看 1.5K关注 0票数 2

有没有办法让我们在WPF ComboBox中拥有像DataTextField和DataValueField这样的功能。

我有这样的疑问:

代码语言:javascript
复制
   Select UID, EmployeeName from tblSystemEmployee;

我想在组合框中显示EmployeeName,但它一直显示UID。我有没有办法做到这一点?谢谢你的帮助?

这是我填充我的数据集的方式:

代码语言:javascript
复制
     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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-21 04:34:41

显示需要DisplayMemberPath属性,值需要SelectedValuePath属性

代码语言:javascript
复制
<Combobox DisplayMemberPath="EmployeeName" SelectedValuePath="UID" />

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

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

  • DisplayMemberPath
  • SelectedValuePath

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

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

代码语言:javascript
复制
If IsValidDataset(dsEmp) Then
        cbEmp.ItemsSource = dsEmp.Tables(0).DefaultView
End If

关于WPF databinding and comboboxes的一篇很好的介绍性文章。

票数 3
EN

Stack Overflow用户

发布于 2012-08-21 04:35:21

您要查找的属性是:DispalyMemberPathSelectedValuePath

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12044663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档