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

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 功能的实现的更多相关文章

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

    winform c#绑定combobox下拉框 年度代码. comboBox1.Items.AddRange("});//邦定数据 comboBox1.Text = DateTime.Now ...

  2. 从后台绑定数据到ligerui 的comboBox下拉框组件

    这次来记录一下ligerUI的comboBox下拉框组件,ligerUI的API里也有相关描写叙述,上面都是前台写死数据,然后显示在组件中,我这次要说的是将后台的数据绑定到下拉框组件中,废话不多说. ...

  3. 快速设计ComboBox下拉框

    传统软件项目开发时,需要每个控件一个一个的来设计,同时需要在页面功能中对每个控件的属性进行判定处理,尤其是页面风格布局样式需要花去一大半的时间,并且后续要想修改是非常麻烦繁琐,这样就导致设计完成一个功 ...

  4. 关于easyui combobox下拉框实现多选框的实现

    好长时间没有更博了,一是因为最近真的比较忙,二是因为自己是真的偷懒了,哈哈 好啦,这篇博客主要是总结一些关于easyui combobox下拉框实现多选框的实现,包括前台界面的展示,和后台对数据的获取 ...

  5. vue-Treeselect实现组织机构(员工)下拉树的功能

    知识点:前端使用vuetree的组件库,调用后台查询组织机构,包括人员的接口 实现下拉树的功能 查考: vue-treeselect官网:https://vue-treeselect.js.org/ ...

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

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

  7. sencha combobox下拉框不用jsonstore,直接使用字符串数组做数据源

    combobox下拉框的store除了可以选择一个jsonstore来加载数据,还可以直接使用符串Array做数据源. { xtype: 'combobox', fieldLabel: 'Label' ...

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

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

  9. 在win8中如何实现下拉刷新的功能

      现在我以listview为例来讲述下拉刷新的功能! 在xaml中设置listview一定要设置一个这样的属性,IsSwipeEnabled=false,然后再listview控件的前面要布局下拉刷 ...

随机推荐

  1. lr设置监控本地和远程windows系统资源

    LoadRunner之设置监控本地和远程Windows系统资源   一般在客户端通过LoadRunner对服务器进行压力测试,都需要实时监控服务器端的系统资源,本篇主要简单介绍一下如何设置在LoadR ...

  2. LeetCode OJ:Longest Increasing Subsequence(最长递增序列)

    Given an unsorted array of integers, find the length of longest increasing subsequence. For example, ...

  3. C++实现设计模式之-装饰模式

    饰模式:动态地给一个对象添加一些额外的职责.就增加功能来说,装饰模式相比生成子类更为灵活.有时我们希望给某个对象而不是整个类添加一些功能.比如有一个手机,允许你为手机添加特性,比如增加挂件.屏幕贴膜等 ...

  4. iOS Xcode全面剖析

    链接:http://www.jianshu.com/p/3c8527898e84 一.创建新一个工程二.Xcode界面详细介绍三.Xcode菜单详解四.Xcode快捷键介绍五.结语六.参考资料 前言 ...

  5. shell的初步介绍

    linux下Shell介绍 概述:每个人在成功登陆LIUX后,系统会出现不同的提示符号,例如$,~,#等,然后你就可以开始输入你需要的命令,若是命令正确,系统就会一句命令的要求来执行,知道注销系统位置 ...

  6. Kotlin Reference (七) Returns and Jumps

    most from reference kotlin有三个结构跳跃表达式 return 默认情况下,从最近的封闭函数或匿名函数返回. break 跳出整个循环 continue 跳出本次循环,进行下一 ...

  7. 软件测试模型---V模型、W模型、H模型、X模型

    人活着一定要有目标,确定自己喜欢什么,再坚持做下去,那么他过得一定不会太差. 煽情的话,不多说,本文主要讲解:"软件测试模型-V模型.W模型.H模型.X模型". 1.V模型 V模型 ...

  8. 将EasyRTMP_RTSP移植到Android平台实现的RTSP拉流转推RTMP直播流功能

    本文转自EasyDarwin开源团队成员Kim的博客:http://blog.csdn.net/jinlong0603/article/details/73253044 前言 安防互联网化的需求已经越 ...

  9. iOS 解决上传100张图片内存奔溃问题

    最近项目需求,从相册中提取100张图片,然后上传到服务器.前提是图片不能压缩.因为要将图片信息采集出来制作出3D模型.所以必须是高清图片. 先看下代码 [NetWorking uploadWithUr ...

  10. 显卡、显卡驱动、显存、GPU、CUDA、cuDNN

    显卡 Video card,Graphics card,又叫显示接口卡,是一个硬件概念(相似的还有网卡),执行计算机到显示设备的数模信号转换任务,安装在计算机的主板上,将计算机的数字信号转换成模拟 ...