WPF ComboBox下拉绑定Treeview 功能的实现
因为项目需要,接触到这个功能点,借助网络还有自己的一点摸索,实现了这个功能。相关代码如下:
XAML部分的代码:
<ComboBox Grid.Row="" Grid.Column="" HorizontalAlignment="Left" Name="OrgaComboBox" Margin="" VerticalAlignment="Top" Width="" RenderTransformOrigin="0.392,0.565" DropDownClosed="OrgaComboBox_DropDownClosed">
<ComboBoxItem Visibility="Collapsed"></ComboBoxItem>
<ComboBoxItem>
<ComboBoxItem.Template>
<ControlTemplate>
<TreeView Name="lftTree" Margin="" 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[] = selectedOrgName;
OrgaComboBox.SelectedItem = OrgaComboBox.Items[]; }
实现的效果基本能满足项目需要了。
WPF ComboBox下拉绑定Treeview 功能的实现的更多相关文章
- winform c#绑定combobox下拉框 年度代码。
winform c#绑定combobox下拉框 年度代码. comboBox1.Items.AddRange("});//邦定数据 comboBox1.Text = DateTime.Now ...
- 从后台绑定数据到ligerui 的comboBox下拉框组件
这次来记录一下ligerUI的comboBox下拉框组件,ligerUI的API里也有相关描写叙述,上面都是前台写死数据,然后显示在组件中,我这次要说的是将后台的数据绑定到下拉框组件中,废话不多说. ...
- 快速设计ComboBox下拉框
传统软件项目开发时,需要每个控件一个一个的来设计,同时需要在页面功能中对每个控件的属性进行判定处理,尤其是页面风格布局样式需要花去一大半的时间,并且后续要想修改是非常麻烦繁琐,这样就导致设计完成一个功 ...
- 关于easyui combobox下拉框实现多选框的实现
好长时间没有更博了,一是因为最近真的比较忙,二是因为自己是真的偷懒了,哈哈 好啦,这篇博客主要是总结一些关于easyui combobox下拉框实现多选框的实现,包括前台界面的展示,和后台对数据的获取 ...
- vue-Treeselect实现组织机构(员工)下拉树的功能
知识点:前端使用vuetree的组件库,调用后台查询组织机构,包括人员的接口 实现下拉树的功能 查考: vue-treeselect官网:https://vue-treeselect.js.org/ ...
- 自绘制HT For Web ComboBox下拉框组件
传统的HTML5的下拉框select只能实现简单的文字下拉列表,而HTforWeb通用组件中ComboBox不仅能够实现传统HTML5下拉框效果,而且可以在文本框和下拉列表中添加自定义的小图标,让整个 ...
- sencha combobox下拉框不用jsonstore,直接使用字符串数组做数据源
combobox下拉框的store除了可以选择一个jsonstore来加载数据,还可以直接使用符串Array做数据源. { xtype: 'combobox', fieldLabel: 'Label' ...
- easyui的combobox下拉框初始化默认值以及保持该值一直显示的方法
easyui的combobox下拉框默认初始值是空,下面是实现从远程加载数据之后初始化默认值,以及让该值一直排在下拉框的最顶部的方式. 目前的需求是需要在初始化的时候添加"全部数据库&quo ...
- 在win8中如何实现下拉刷新的功能
现在我以listview为例来讲述下拉刷新的功能! 在xaml中设置listview一定要设置一个这样的属性,IsSwipeEnabled=false,然后再listview控件的前面要布局下拉刷 ...
随机推荐
- linux 普通synflood攻击防范网络参数设置
linux如何防SYN攻击 [root@web ~]# netstat -anp |awk '{print $6}'|sort|uniq -c |sort -rn 172 ESTABLISHED 59 ...
- java开发中beancopy比较
在java应用开发过程中不可避免的会使用到对象copy属性赋值. 1.常用的beancopy工具 组织(包) 工具类 基本原理 其他 apache PropertyUtils java反射 B ...
- Inventory Update
依照一个存着新进货物的二维数组,更新存着现有库存(在 arr1 中)的二维数组. 如果货物已存在则更新数量 . 如果没有对应货物则把其加入到数组中,更新最新的数量. 返回当前的库存数组,且按货物名称的 ...
- mac下csv乱码解决办法
到csv目录下, 用终端执行以下命令: iconv -f UTF8 -t GB18030 a.csv >b.csv
- bzoj3000
题解: n!k进制的位数 首先考虑n!十进制的位数 =log10(n!) 然后用阶乘近似公式 继而换底 得到答案 代码: #include<bits/stdc++.h> using nam ...
- 网关-zuul介绍 第一篇 网关解决的问题
基于网关,我们可以实现 限流,认证,监控,路由 等功能,这样说,我们可能觉得很生硬,那我们反过来推一下, 假如没有网关会怎么样?1 :客户端需要访问多个后端服务,则前端得存储多个后端的地址(ip+po ...
- LeetCode OJ:Partition List(分割链表)
Given a linked list and a value x, partition it such that all nodes less than x come before nodes gr ...
- 12.18 aop身份验证
对所有卖家页面进行身份验证,采用aop编程 步骤:1.获得request 2.查询cookie 3.查询redis 4.查询不通过时,采用抛出异常,捕捉异常,再异常里加入跳转到登陆页面的方法 准备工作 ...
- 进程与网络监控和ssh简单使用
进程的概念和管理 进程: 正在执行的程序 线程: 轻量级的进程 进程有独立的地址空间,线程没有 线程不能独立存在,它是由进程创建.Thread1.在linux中,每个执行的程序都称为一个进程.每一个进 ...
- jq的.off解绑事件
.off( events [, selector ] [, handler ] ) 描述:移除一个事件处理函数 events 类型: String 一个或多个空格分隔的事件类型和可选的命名空间,或仅仅 ...