WPF ComboBox下拉绑定Treeview 功能的实现
因为项目需要,接触到这个功能点,借助网络还有自己的一点摸索,实现了这个功能。相关代码如下:
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 功能的实现相关推荐
- winform c#绑定combobox下拉框 年度代码。
winform c#绑定combobox下拉框 年度代码. comboBox1.Items.AddRange(new object[] { "2012", "2013&q ...
- WPF自定义下拉框ComboBox样式
很多时候不知道控件样式的构成,可以上msdn查看控件的模板与样式. ComboBox下拉框主要放内容的是Popup控件,有三种显示items的方式: ① 默认的ItemsPresenter ...
- python tk下拉列表的state_Python tkinter之ComboBox(下拉框)的使用简介
1.ComboBox的基础属性 # -*- encoding=utf-8 -*- import tkinter from tkinter import * from tkinter import tt ...
- WPF实现下拉框带图文和水印
WPF开发者QQ群: 340500857 有小伙伴需要实现ComboBox下拉框带水印,并且选择Item内容后水印默认从中间到顶部.Item需要展示图文,选择后的数据展示图文. 欢迎转发.分享.点赞, ...
- Qt 禁用ComboBox下拉选项
本文提供连两种禁用ComboBox下拉选项的方法,一种是全部禁用,一种是的单个禁用! 1 全部禁用 功能:使ComboBox无法选择下拉选项 实现:调用ComboBox父类QWidget的setEna ...
- refreshcontrol 实现下拉刷新的功能
该组件实现下拉刷新的功能.不过该组件是用在ScrollView的内部的,为ScrollView添加一个下拉刷新的功能.当ScrollView的垂直方向的偏移量scrollY:0的时候,手指往下拖拽Sc ...
- easyui的combobox下拉框初始化默认值以及保持该值一直显示的方法
easyui的combobox下拉框默认初始值是空,下面是实现从远程加载数据之后初始化默认值,以及让该值一直排在下拉框的最顶部的方式. 目前的需求是需要在初始化的时候添加"全部数据库&quo ...
- 自绘制HT For Web ComboBox下拉框组件
传统的HTML5的下拉框select只能实现简单的文字下拉列表,而HT for Web通用组件中ComboBox不仅能够实现传统HTML5下拉框效果,而且可以在文本框和下拉列表中添加自定义的小图标,让 ...
- Devexpress GridControl 设置combobox下拉框
GridControl 设置combobox下拉框 //设置combobox下拉框 private void GetComboBox(string str) { ...
最新文章
- android 登录组件开发,Android组件化开发路由的设计
- Caffe代码导读(5):对数据集进行Testing
- KEIL常见编译错误和警告解决方案汇总
- php对象底层结构,PHP 底层原理之类和对象
- leetcode 205. 同构字符串(hash)
- [html] 你有使用过meter标签吗?说说它的用途有哪些?
- linux下和htm的运行,嵌入式LINUX下CGI与HTML网页之间的通信
- 【jQuery笔记Part3】02-jQuery抖动效果
- Docker (一、dockerfile-node.js)
- web前端、个人简历模板、个人简历_优秀个人简历模板
- 电子元器件识别(图解)
- JAVA计算两条直线的交点(判断两条线段相交)
- 数学建模PPT(三)
- 中国游戏媒体市场动态前景与竞争策略分析报告(2021-2026年)
- java 调用打印机
- 打飞机--C语言版(是真打飞机!)
- lego-loam代码分析(3)-激光里程计
- 三国志战略版S5赛季事件战法简评
- 对就是对,错就是错。
- 国内笔试面试风格及准备方法
热门文章
- python字符串批量替换、修改多个字符的方法实例
- PHPMailer目录和命名空间没有错,但是始终class not found,的原因和解决方法
- hive 修改cluster by算法_Hive基础之导出数据
- 电脑键盘练习_用键盘打字怎样才能练得快,有什么窍门没?
- Lifewire文档阅读笔记-如何使用IP地址找对应的MAC地址
- HTTP、HTTPS、SSL、TLS之间的关系
- 汇编:采用顺序编程方法,实现在屏幕上显示大写字幕A
- mysql 动态hash_python动态渲染库_python 动态渲染 mysql 配置文件的示例
- 商品订单表怎么设计_三级分销系统系统设计
- (软件工程复习核心重点)第十章面向对象设计-第四节:设计人机交互子系统和设计任务管理子系统