最近在写一个WPF客户端的一个小程序,其中有个小需求如下:

  1. 展示下拉列表里面有树形结构
  2. 点击下拉子项时同时显示父级和子级文本

也就是说在DisplayMember 中有两种显示方式

  1. 下拉列表显示时,显示的是DisplayMember 的值
  2. 点击选中子项时,需要计算子级和父级的文本并进行拼接,然后显示在combox 中

一开始没有多想就想应该直接设置combox.Text 不就可以搞定了么,问题很简单的嘛!于是就设置了下

发现不起作用!最后查了msdn 说是combox 的 IsEditable=true 时 设置下拉框的Text才有效,于是就启用了IsEditable,运行调试发现仍然没有卵用!!

问题来了,怎么搞?那换个思路,重写Combox ? 我觉得太麻烦,就没有往这方面想,毕竟界面用的没有几个下拉框。那有没有什么先简单的方式呢?

我的思路:

使用Textbox做高宽统一放置在Combox的上方,漏出下拉框的下拉箭头,把Textbox做成透明层(这里不是界面透明,是事件穿透哦),把Combox 与Textbox 分组为一组Gird中 做好高宽自动同步拉伸,注意在控件命名的时候最好有规律哦,后面要用到的。

xaml如下:

         <Grid Margin="62,4,220,33"><ComboBox x:Name="cmbCategoryAdd1"/><TextBox IsReadOnly="True" x:Name="txtcmbCategoryAdd1" Text="" Margin="0,0,18,0"/></Grid>

显示如下

选择:  未选择:

有没有感觉很逼真,其实上方是Textbox,好吧,现在要把Textbox 做成透明层代码如下:

            TextBox text = window.GetControlByName<TextBox>("txt" + comboBox.Name);text.Text = comboBox.GetComboxSelectedValue();text.IsHitTestVisible = false;//设置文本框为透明层

这就把Textbox 设置为透明层啦!下面来做下拉框选中以后改变Textbox 的值:

            //下拉框选择变化时发生comboBox.SelectionChanged+=new SelectionChangedEventHandler((sender, args) =>{TextBox text2 = window.GetControlByName<TextBox>("txt" + comboBox.Name);text2.Text = comboBox.GetComboxSelectedValue();});

代码里的window就是当前窗口(this),GetControlByName 也贴出来

        #region 根据控件名称,查找控件/// <summary>/// 根据控件名称,查找控件/// </summary>public static T GetControlByName<T>(this Window obj, string elementName) where T : FrameworkElement{return ((T)obj.FindName(elementName));}#endregion

现在查看下效果

嗯,不错,效果还是很满意的,没有重写Combox,这样放置个透明Textbox 简单两句代码就可以实现啦。小东西,目的是为了培养自己写博客的习惯。

转载于:https://www.cnblogs.com/nodes/p/8681969.html

WPF 中设置Combox下拉框Text 显示值相关推荐

  1. 设置select下拉框不可修改的→“四”←种方法

    设置select下拉框为不可修改的几种方法: 因为select的特殊性,导致它不能像input表单一样简单地设置一个readonly来限制修改,所以,我们需要进行别的操作! 1.为下拉框添加样式,可以 ...

  2. 下拉框的高度html,设置select下拉框高度的一种方法

    这种方法可以设置下拉框最多显示几条栏目,多余的栏目用显示滚动条展示: 文学集 哲学 雅思 大学网奥数大学网奥数 文学集 哲学 雅思 大学网奥数 Layui:设置select下拉框自动选中某项 1.问题 ...

  3. html select不允许选择,设置select下拉框不能选择

    今天在做一个小功能的时候,需要对特定的一个select设置禁止选择,只好采用js进行控制,接下来吾爱编程为大家介绍一下设置select下拉框不能选择的方法,有需要的小伙伴可以参考一下: 1.功能需求: ...

  4. HTML如何设置select下拉框的默认值?

    本篇文章给大家介绍设置select下拉框默认值的方式.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 我们可以在所需选项上使用"selected"属性来设置sel ...

  5. java实现设置Excel下拉框在使用Excel的时候用到了下拉框,实现的效果如下↓

    在使用Excel的时候用到了下拉框,实现的效果如下↓ 在生成excel文件时,需要根据给出的下拉框选项列表动态生成下拉框.实现代码如下: private void createSelect(XSSFW ...

  6. EasyExcel在项目中的应用-在web中导出带下拉框和批注的excel文件

    前言 ​ 好长一段时间没有更新博客了,最近刚刚找到实习工作,接触了企业中的项目,在这段时间的实习过程中,终于知道了企业级项目的体量和业务难度跟之前的小项目是完全不同的.10多天的适应期也逐渐让我找到了 ...

  7. Devexpress GridControl 设置combobox下拉框

    GridControl 设置combobox下拉框 //设置combobox下拉框         private void GetComboBox(string str)         {     ...

  8. Layui实现动态生成select中的option项,同时设置select下拉框选中项

    项目场景: 主要用于为民族select下拉框动态生成option值,同时在实现编辑功能时,表单中的select下拉框的选中项为后台传过来的数据. 举例: 如下图所示的表单内容,下图的民族和政治面貌se ...

  9. php怎么设置学年下拉框_php的下拉框的值

    Joomla的15种字段类型是什么? Joomla现在有了自定义字段,可以添加到文章.用户配置文件和联系人表单中. 这是自Joomla 3发布以来最重要的新功能之一,它将改变许多Joomla站点的构建 ...

最新文章

  1. nginx 负载均衡配置_Nginx负载均衡NFS配置
  2. 一文读懂比特币UXTO,TA其实没那么神秘!
  3. 零次学习(zero-shot learning)
  4. 函数adapthisteq
  5. android应用安全——数据安全
  6. 深信服环境SCSA环境遇到的问题(无法访问网站)
  7. 邮件服务器pop110什么意思,pop pop3区别_25和110端口_imap和pop怎么设置
  8. Oracle查询排列组合,Oracle SQL排列组合之组合问题
  9. 3GPP 3GPP2等协议文档下载网址汇总
  10. 模拟人生4修改服务器,模拟人生4 全秘籍、作弊码一览 模拟人生4修改方法汇总...
  11. 转录组+云平台助力HIF-1α促进冠状病毒感染的分子机制研究
  12. 发布微头条显示调用服务器失败,发布的微头条,有的标明“内容已编辑”,有的未标示,这是怎么回事?...
  13. python3里复数的算法,Python 3复数
  14. 重庆智博会|2022智博会到底有哪些看点?拭目以待
  15. 独家汇总! 全国30家5G产业联盟名单发布!(附情况介绍)
  16. 如何用敏捷搞垮团队?[视频版]
  17. 拆了小米的小台灯,手贱,多图
  18. 软考高级 2021年信息系统项目管理师视频教材历年真题资料
  19. 常亮左值引用可以绑定右值的原因
  20. java计算两个矩阵相乘

热门文章

  1. 关于vector的size()的使用问题
  2. ANSI X9.9 MAC算法介绍
  3. 百度顶会论文复现(3):视频分类综述
  4. hashmap为什么是2的倍数_HashMap源码解析(jdk1.8)
  5. coreldraw错误代码14001_CorelDRAW文件损坏的几种解决方法
  6. linux忘记mysql登录用户密码_linux中忘记mysql用户root密码解决方案
  7. jquery工具箱旋转动画效果
  8. Hessian Binary Web Service Protocol远程接口调用入门
  9. kubelet内存异常分析
  10. 机器学习顶刊文献_人工智能顶刊TPAMI2019最新《多模态机器学习综述》