闲话WinFrom与WPF(2) 控件篇——ComboBox

本文探讨了WinForm和WPF中ComboBox控件的数据绑定、ToString重写、自动提示功能。通过实例展示了如何绑定数据源,如何重写ToString方法以自定义显示内容,以及在WPF中实现ComboBox的自动提示。对于自动提示,WPF提供了基本的定位功能,但实现筛选功能则需要更多定制工作。
摘要由CSDN通过智能技术生成

下拉框是一个很经典的控件,网上也有不少对于下拉框控件的扩展,其中包括与TreeView结合,做成树形选择;与DataGrid结合,做成列表选择;又或增加几个按钮来达到快捷编辑集合,选中项特殊显示等等。
对于复杂的组合控件,我这里就不必多说,只说说原生ComboBox的一些应用。

原文链接:http://nanqi.info/blog/2013/03/29/winform-wpf-2/

绑定数据源


简单的给Items添加项我就不说了,比如一些类型的选择多数使用这种,如一个员工的职位,是程序猿呢,还是项目经理。
但往往这种职位,是需要考虑扩展的,也就是说这个职位也要可维护的,所以一般的软件做法,在数据库中以字典表的形式去保存这类情况,而数据库设计中又有这么一个要求,每个表都要有不重复的ID做主键,所以经常看到如此的表结构:

GUID    varchar(50)
Name    varchar(50)
...


那么,将该数据展示在ComboBox中,可能就需要展示的是Name,而你只想获取选择的GUID。
所幸不管在WinForm还是WPF中,更或是在web开发中,即使纯Html的ComboBox,都有这种选择的一个值,而可能实际获得的是另一个值。
WinForm中指定DisplayMemberValueMember属性,WPF中指定DisplayMemberPathSelectedValuePath属性,可以很简单的实现上述要求。
而如果当这个字典表很大,或者客户需要给这种职位、类别之类的东西编号的时候,这时可能需要在显示的时候既显示编号,又显示名称,这时的表结构可能会这样:

GUID    varchar(50)
No      varchar(50)
Name    varchar(50)
...


如果不拘于形式而言,一般完全可以使用No替换GUID,不管怎样,现在就是想要既获得主键列的值,又想显示No + Name的形式。

重写ToString的一种实

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值