下拉框是一个很经典的控件,网上也有不少对于下拉框控件的扩展,其中包括与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中指定DisplayMember与ValueMember属性,WPF中指定DisplayMemberPath与SelectedValuePath属性,可以很简单的实现上述要求。
而如果当这个字典表很大,或者客户需要给这种职位、类别之类的东西编号的时候,这时可能需要在显示的时候既显示编号,又显示名称,这时的表结构可能会这样:
GUID varchar(50)
No varchar(50)
Name varchar(50)
...
如果不拘于形式而言,一般完全可以使用No替换GUID,不管怎样,现在就是想要既获得主键列的值,又想显示No + Name的形式。

本文探讨了WinForm和WPF中ComboBox控件的数据绑定、ToString重写、自动提示功能。通过实例展示了如何绑定数据源,如何重写ToString方法以自定义显示内容,以及在WPF中实现ComboBox的自动提示。对于自动提示,WPF提供了基本的定位功能,但实现筛选功能则需要更多定制工作。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



