WPF 中設置Combox下拉框Text 顯示值

最近在寫一個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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453090.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453090.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453090.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

簡單的文件上傳功能實現(java)

現在很多做后臺系統的項目大部分都會用到文件上傳這個功能&#xff0c;網上有很多例子&#xff0c;這邊是自己用SSM框架技術做的一個簡單的文件上傳功能。 在寫文件上傳功能前首先要導入相應的jar包&#xff1a; commons-fileupload-1.3.1-jar &#xff1b;commons-io-2.2-jar …

多讀讀書,對自己有好處

首先&#xff0c;打破一切常規 我一直以來養成了一個習慣&#xff0c;就是睡覺之前看半個小時或更長時間的書&#xff0c;這些書都是雜七雜八的&#xff0c;沒有特定的類型&#xff0c;這種習慣有好有壞&#xff0c;好的書好的句子能讓我回味無窮&#xff0c;在甜美中慢慢地進…

增量導出_[華為]一種實用的增量式深度CTR模型訓練方法

今天給大家介紹一篇有關深度CTR模型增量訓練的文章&#xff0c;來自華為諾亞方舟實驗室。1、背景深度CTR模型需要大量的數據進行訓練&#xff0c;同時需要不斷的更新以適應最新的數據分布。如果模型沒有及時更新&#xff0c;則有可能帶來線上效果的衰減&#xff0c;如下圖&…

win7如何添加終端服務器,Windows7系統超級終端的添加方法 win7如何添加超級終端...

有用戶在剛升級到Windows7系統以后反映&#xff0c;在XP 操作系統里&#xff0c;超級終端是很好用的&#xff0c;但是卻不知道為什么&#xff0c;升級為Windows7系統后卻找不到超級終端在哪&#xff0c;出現這樣的情況讓用戶非常的煩惱&#xff0c;其實找不到超級終端&#xff…

騰訊這家公司的核心競爭力是什么?為什么?

Andy Pan &#xff0c;騰訊無線國際業務產品總監, 騰訊國際業務部... 我決定在國外出差的最后一晚晚點休息,在酒店靜靜的認真的回答這個問題。我盡量客觀的負責的回答&#xff0c;不憤青&#xff0c;不炫耀&#xff0c;不攻擊&#xff0c;用樸實的語言。只代表我個人的思考&…

h.323 服務器 作用,Cisco CallManager服務器冗余的H.323 網關撥號對端配置

語音、視頻和集成數據 (AVVID) 設計的體系結構一般建議您具有主 Cisco CallManager 服務器和輔助 Cisco CallManager 服務器以實現冗余。如果主 Cisco CallManager 服務器發生故障&#xff0c;則輔助 Cisco CallManager 服務器將接管&#xff0c;并且 IP 電話將重定向到此服務器…

靜態優先權和動態優先權

靜態優先級&#xff1a;在創建進程時確定的&#xff0c;且在進程的整個運行期間保持不變動態優先級&#xff1a;在創建進程時所賦予的優先權&#xff0c;是可以隨進程的推進或隨其等待時間的增加而改變的&#xff0c;以便獲得更好的調度性能。確定靜態優先權的依據有如下三個方…

xmind可以畫流程圖嗎_新娘妝可以自己畫嗎?臨夏化妝學校告訴你答案!

對于很多女性來說&#xff0c;一生中最重要的時候無疑是新婚的那一天&#xff0c;古時候的閨閣女子&#xff0c;鳳披霞冠&#xff0c;八臺大轎&#xff0c;攜手自己的如意郎君相伴一生&#xff0c;現代女子&#xff0c;潔白的婚紗&#xff0c;手握鮮花&#xff0c;一枚戒指&…

2.如何對待加班

感覺深圳尤其是IT行業&#xff0c;加班確實很普遍。我覺得主要看是為什么加班吧&#xff0c;是公司強制要求&#xff0c;還是員工開發效率低&#xff0c;還是加班有額外的收入&#xff0c;還是想在這個期間學習&#xff0c;自我提升。公司為什么會形成這個氛圍&#xff0c;是自…

計算機一級發郵件發送多個抄送,計算機一級考試IE題和收發郵件模擬題.docx

文檔介紹&#xff1a;某模擬網站的主頁地址是:HTTP://LOCALHOST:65531/ExamWeb/INDEX.HTM,打開此主頁,瀏覽"航空知識"頁面,查找"運十運輸機"的頁面內容,并將它以文本文件的格式保存到考生目錄下,命名為"y10ysj.txt"。IE題①通過"答題"…

git merge與rebase

參考這篇文章 Git 之 merge 與 rebase 的區別 文章2 另外&#xff0c;使 rebase出現沖突后&#xff0c;先修改沖突&#xff0c;然后git add 某文件&#xff08;我使用add .經常有問題&#xff09;&#xff0c;然后git rebase --continue&#xff0c;持續到rebase結束&#xf…

wget 地址 連接超時_HttoPool連接池 和Hystrix 服務容錯機制

學習主題&#xff1a;httpPool&Hystrix學習目標&#xff1a;對應視頻: http://www.itbaizhan.cn/course/id/85.html對應文檔:無對應作業1. 編寫支持Gzip壓縮案例(1) 修改Consumer的全局配置文件&#xff0c;添加Gzip相關配置。spring.application.nameeureka-consumer-http…

JQuery 加載 CSS、JS 文件

JS 方式加載 CSS、JS 文件&#xff1a; //加載 css 文件 function includeCss(filename) {var head document.getElementsByTagName(head)[0];var link document.createElement(link);link.href filename;link.rel stylesheet;link.type text/css;head.appendChild(link) …

關閉網頁如何接收服務器消息,WebSocket服務端發消息給客戶端,瀏覽器收到消息就關閉了...

引用 2 樓 fly_dragon_fly 的回復:收到的消息是什么0000 00 0b ab 7a 86 83 18 f4 6a 36 60 a2 08 00 45 00 ...z....j6...E.0010 00 b9 49 d3 40 00 40 06 6b aa c0 a8 01 79 c0 a8 ..I...k....y..0020 01 f8 08 03 71 88 a4 d5 52 dc ce c1 f6 89 50 18 ....q...R..…

街舞中的rolling機器人_REMEMBER街舞培訓中心2020年元旦匯演

二零二零 元旦匯演REMEMBER2020年1月1日&#xff0c;Remember街舞培訓中心在愛琴海購物公園進行了兩個小時的匯報表演&#xff0c;Remember的學員們貢獻了非常精彩的表演。在過去的2019年&#xff0c;我們一路探索、一路艱辛、一路欣喜、一路收獲&#xff0c;在這里感謝所有老…

shell基礎(上)

2019獨角獸企業重金招聘Python工程師標準>>> 一 shell介紹 shell 是一個命令解釋器。本質上是用戶與計算機之間的交互。 用戶把指令告訴shell&#xff0c;然后shell再傳輸給系統內核&#xff0c;接著內核再去支配計算機硬件去執行各種操作。 每個用戶都可以有自己特…

webRTC實戰總結

前言 前段時間一直在忙一個基于WebRTC的PC和移動端雙向視頻的項目。第一次接觸webRTC&#xff0c;難免遇到了許多問題&#xff0c;比如&#xff1a;webRTC移動端兼容性檢測&#xff0c;如何配置MediaStreamConstraints&#xff0c; 信令(iceCandidate, sessionDescription)傳輸…