rzt_tao 发表于 2017-7-2 10:56:32

RepositoryItemCheckedComboBoxEdit如何选择所有的时候只显示"全部"

本帖最后由 rzt_tao 于 2017-7-2 10:59 编辑

关于DevExpress的CheckedComboBoxEdit及在GridView上绑定的RepositoryItemCheckedComboBoxEdit如何实现选择所有Item的时候让文本框只显示“全部”或者其他自定义字样问题有时候可能有这种需求,选择了checkedcombobox的所有项后并不想所有项都显示出来,就只是想告诉用户已经选择了所有了,如下图所示


首先说说CheckedComboBoxEdit需要如何操作才能实现这个表现效果:
DevExpress几乎所有下拉控件都提供了CustomDisplayText的这个事件,知道这个事件就好办事了,无疑就是判断值,判断是否为全选就设置一个displayText,
代码如下:

      private void checkedComboBoxEdit1_CustomDisplayText(object sender, DevExpress.XtraEditors.Controls.CustomDisplayTextEventArgs e)
      {

            var edit = sender as DevExpress.XtraEditors.CheckedComboBoxEdit;
            if (edit != null)
            {
                var checkItems = edit.Properties.Items.GetCheckedValues();//获取选择中的Item值集
                if (edit.Properties.Items.Count == checkItems?.Count)//判断选择的Item个数是否所有Item的个数一致
                {
                  e.DisplayText = "全部";
                }
            }
      }


接下来说说RepositoryItemCheckedComboBoxEdit,因为要显示在GridView上,所以要符合GridView的显示规则,单纯的这种做法肯定是满足不了,因为每一行的情况不同,然后组件都是同一个,
这时可能有人会想到利用GridView的CustomRowCellEdit事件通过克隆的方式让该列的每一行都是不同的RepositoryItemCheckedComboBoxEdit这样就每一行就互不影响了,理论上可以这样做,但是不建议,
这个代码就自己实现,这里不提供。比较理想的做法应该是利用GridView的CustomColumnDisplayText事件来控制,代码如下:(评论可查看,乱评论小黑屋伺候)
**** Hidden Message *****

效果图:


如果想选择全部后立即就显示“全部”,而不是焦点离开的时候才显示,操作很简单,再加个repositoryItemComboBoxEdit的CustomDisplayText事件即可:
**** Hidden Message *****
结合这两个事件就可以完美解决这个需求了:
效果图:


nawong 发表于 2017-7-2 12:29:20

好好好的                                                      !

je6rry 发表于 2017-7-3 10:43:59

谢谢分享

miniprince 发表于 2017-7-5 11:26:25

感谢楼主分享。

yukeke 发表于 2017-7-5 13:11:23

看看实现..

ZYFHYC 发表于 2017-7-6 13:41:41

http://pan.baidu.com/s/1kVwsdnh 密码:qfpv

qinfengyan 发表于 2017-7-19 15:23:48

谢谢分享

ilezhi 发表于 2017-7-23 21:46:35

很实用,谢谢分享~~~~~

ifu25 发表于 2017-8-21 20:31:56

这个也不错,果断收藏了。

ChurchVin 发表于 2017-10-12 17:21:36

学习一下

jch390436 发表于 2018-1-5 09:41:21

认真看了你的CODE

joseph 发表于 2018-1-31 14:30:09

学习一下,善于琢磨才是硬道理

annie321gao 发表于 2018-3-6 10:16:05

刚用到CheckedComboBoxEdit,学习了,谢谢

714898018 发表于 2018-3-20 15:54:46

学习学习

我来拾豆豆 发表于 2018-3-21 17:00:00

感谢楼主分享。

zwc19920306 发表于 2018-4-19 17:00:58

感谢分享

sifenwang 发表于 2018-4-20 15:23:00

学习一下,谢谢

lonelyleslie 发表于 2018-10-8 12:33:44

想法很好,很实用,赞一下

xf0324 发表于 2018-10-19 14:25:11

不错正好用到,不过Select All能不能自定义成中文

ymzl8744 发表于 2018-12-12 23:10:55

赞一个!!!

ymzl8744 发表于 2018-12-13 10:23:45

楼主能发源码给我看么 万分感谢! 邮箱 65644769@qq.com

longzu 发表于 2018-12-19 11:42:05

我收拾收拾

eastwind1234 发表于 2019-1-3 15:00:30

遇到了同样的问题,很有帮助

Halley 发表于 2019-3-17 16:24:26

学习下,能用到

great007x 发表于 2019-4-19 09:47:52

感谢楼主分享。

boergege 发表于 2019-5-3 23:14:00

谢谢核心技术分析

boergege 发表于 2019-5-4 02:18:35

非常感谢

zhanglred 发表于 2019-5-16 15:09:10

aaaaaaaaaaaaaaaaaa

du11413 发表于 2019-5-29 14:24:07

xuexi学习

Allennnnna 发表于 2019-7-1 16:15:35

能绑定主从表中的从表表名吗,然后点击就动态跳转
页: [1] 2 3
查看完整版本: RepositoryItemCheckedComboBoxEdit如何选择所有的时候只显示"全部"