因为项目需要,接触到这个功能点,借助网络还有自己的一点摸索,实现了这个功能。相关代码如下:

XAML部分的代码:

<ComboBox Grid.Row="0"  Grid.Column="9" HorizontalAlignment="Left" Name="OrgaComboBox" Margin="6"   VerticalAlignment="Top" Width="200" RenderTransformOrigin="0.392,0.565" DropDownClosed="OrgaComboBox_DropDownClosed">               <ComboBoxItem Visibility="Collapsed"></ComboBoxItem><ComboBoxItem><ComboBoxItem.Template><ControlTemplate><TreeView Name="lftTree" Margin="0" ItemsSource="{Binding}"  SelectedItemChanged="lftTree_SelectedItemChanged"                                                                                     DisplayMemberPath="OrgName" SelectedValuePath="OrgId" ><TreeView.ItemContainerStyle><Style TargetType="TreeViewItem"><Setter Property="IsExpanded" Value="{Binding IsExpand}"></Setter></Style></TreeView.ItemContainerStyle><TreeView.ItemTemplate><HierarchicalDataTemplate  ItemsSource="{Binding Children}"><TextBlock  Text="{Binding OrgName}"></TextBlock></HierarchicalDataTemplate></TreeView.ItemTemplate></TreeView></ControlTemplate></ComboBoxItem.Template></ComboBoxItem></ComboBox>

后台相关代码:

ObservableCollection<OrgaViewModel> orgaCollection = new ObservableCollection<OrgaViewModel>();List<IOrganization> iorganizations = this.serviceAgent.QueryRootOrganizations();//List<Organization> iorganizations = this.localDataAccess.QueryRootOrganizations();if (iorganizations == null){return;}foreach (IOrganization current in iorganizations){OrgaViewModel orgaVM = new OrgaViewModel{IsExpanded = true,OrgCode = current.OrgCode,OrgId = current.OrgId,OrgName = current.OrgName,ParentOrgId = current.ParentOrgId};GetChildOrganization(orgaVM);orgaCollection.Add(orgaVM);}this.OrgaComboBox.DataContext = orgaCollection;

为了选中树的某个节点,能在ComboBox中显示数据,分别用了树和下拉框的一个控件事件:

private void lftTree_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e){try{tempOVM = (OrgaViewModel)e.NewValue;selectedOrgName = tempOVM.OrgName;selectedOrgId = tempOVM.OrgId;               }catch (Exception ex){logger.Error(ex.ToString());}}private void OrgaComboBox_DropDownClosed(object sender, EventArgs e){OrgaComboBox.Items[0] = selectedOrgName;OrgaComboBox.SelectedItem = OrgaComboBox.Items[0];}

实现的效果基本能满足项目需要了。

转载于:https://www.cnblogs.com/tlduck/p/7580697.html

WPF ComboBox下拉绑定Treeview 功能的实现相关推荐

  1. winform c#绑定combobox下拉框 年度代码。

    winform c#绑定combobox下拉框 年度代码. comboBox1.Items.AddRange(new object[] { "2012", "2013&q ...

  2. WPF自定义下拉框ComboBox样式

    很多时候不知道控件样式的构成,可以上msdn查看控件的模板与样式. ComboBox下拉框主要放内容的是Popup控件,有三种显示items的方式: ① 默认的ItemsPresenter      ...

  3. python tk下拉列表的state_Python tkinter之ComboBox(下拉框)的使用简介

    1.ComboBox的基础属性 # -*- encoding=utf-8 -*- import tkinter from tkinter import * from tkinter import tt ...

  4. WPF实现下拉框带图文和水印

    WPF开发者QQ群: 340500857 有小伙伴需要实现ComboBox下拉框带水印,并且选择Item内容后水印默认从中间到顶部.Item需要展示图文,选择后的数据展示图文. 欢迎转发.分享.点赞, ...

  5. Qt 禁用ComboBox下拉选项

    本文提供连两种禁用ComboBox下拉选项的方法,一种是全部禁用,一种是的单个禁用! 1 全部禁用 功能:使ComboBox无法选择下拉选项 实现:调用ComboBox父类QWidget的setEna ...

  6. refreshcontrol 实现下拉刷新的功能

    该组件实现下拉刷新的功能.不过该组件是用在ScrollView的内部的,为ScrollView添加一个下拉刷新的功能.当ScrollView的垂直方向的偏移量scrollY:0的时候,手指往下拖拽Sc ...

  7. easyui的combobox下拉框初始化默认值以及保持该值一直显示的方法

    easyui的combobox下拉框默认初始值是空,下面是实现从远程加载数据之后初始化默认值,以及让该值一直排在下拉框的最顶部的方式. 目前的需求是需要在初始化的时候添加"全部数据库&quo ...

  8. 自绘制HT For Web ComboBox下拉框组件

    传统的HTML5的下拉框select只能实现简单的文字下拉列表,而HT for Web通用组件中ComboBox不仅能够实现传统HTML5下拉框效果,而且可以在文本框和下拉列表中添加自定义的小图标,让 ...

  9. Devexpress GridControl 设置combobox下拉框

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

最新文章

  1. android 登录组件开发,Android组件化开发路由的设计
  2. Caffe代码导读(5):对数据集进行Testing
  3. KEIL常见编译错误和警告解决方案汇总
  4. php对象底层结构,PHP 底层原理之类和对象
  5. leetcode 205. 同构字符串(hash)
  6. [html] 你有使用过meter标签吗?说说它的用途有哪些?
  7. linux下和htm的运行,嵌入式LINUX下CGI与HTML网页之间的通信
  8. 【jQuery笔记Part3】02-jQuery抖动效果
  9. Docker (一、dockerfile-node.js)
  10. web前端、个人简历模板、个人简历_优秀个人简历模板
  11. 电子元器件识别(图解)
  12. JAVA计算两条直线的交点(判断两条线段相交)
  13. 数学建模PPT(三)
  14. 中国游戏媒体市场动态前景与竞争策略分析报告(2021-2026年)
  15. java 调用打印机
  16. 打飞机--C语言版(是真打飞机!)
  17. lego-loam代码分析(3)-激光里程计
  18. 三国志战略版S5赛季事件战法简评
  19. 对就是对,错就是错。
  20. 国内笔试面试风格及准备方法

热门文章

  1. python字符串批量替换、修改多个字符的方法实例
  2. PHPMailer目录和命名空间没有错,但是始终class not found,的原因和解决方法
  3. hive 修改cluster by算法_Hive基础之导出数据
  4. 电脑键盘练习_用键盘打字怎样才能练得快,有什么窍门没?
  5. Lifewire文档阅读笔记-如何使用IP地址找对应的MAC地址
  6. HTTP、HTTPS、SSL、TLS之间的关系
  7. 汇编:采用顺序编程方法,实现在屏幕上显示大写字幕A
  8. mysql 动态hash_python动态渲染库_python 动态渲染 mysql 配置文件的示例
  9. 商品订单表怎么设计_三级分销系统系统设计
  10. (软件工程复习核心重点)第十章面向对象设计-第四节:设计人机交互子系统和设计任务管理子系统