WPF 如何设计ComboxTree控件

问题描述

希望大神指点下如何修改Combox的模版将Treeview控件和Combox控件结合起来

解决方案

解决方案二:
ComboBox的下拉列表应该是个popup,然后带一个Items呈现容器,因为ComboBox的Items是平行关系的集合,所以无法通过修改模板的方式使它呈现为树形结构,这种需求只能是自己写一个用户控件来实现,要用到popup,里面放一个TreeView,至于文本框和箭头,自己画吧
解决方案三:
引用1楼rocmemory的回复:

ComboBox的下拉列表应该是个popup,然后带一个Items呈现容器,因为ComboBox的Items是平行关系的集合,所以无法通过修改模板的方式使它呈现为树形结构,这种需求只能是自己写一个用户控件来实现,要用到popup,里面放一个TreeView,至于文本框和箭头,自己画吧

你说的不对吧,在popup中加个TreeView就可以,问题是数据绑定和显示有问题
解决方案四:
大神在哪里
解决方案五:
引用2楼我是你的主体的回复:

Quote: 引用1楼rocmemory的回复:
ComboBox的下拉列表应该是个popup,然后带一个Items呈现容器,因为ComboBox的Items是平行关系的集合,所以无法通过修改模板的方式使它呈现为树形结构,这种需求只能是自己写一个用户控件来实现,要用到popup,里面放一个TreeView,至于文本框和箭头,自己画吧

你说的不对吧,在popup中加个TreeView就可以,问题是数据绑定和显示有问题

就是因为用ComboBox的数据模板无法完成树形结构,所以数据绑定和显示才有问题,你觉得把平行数据改为树形数据只是在界面上加个TreeView就可以解决?WPF里不是所有问题都可以通过修改模板来完成的,模板这个概念只是mvvm模式的基础,而不是所有问题的解决方案,它可以帮你完成呈现方式的一次性转换,但是如果要改变数据结构,就不能胜任了。而且我很奇怪,按我说的那样做个自定义控件不难吧?起码你在这里等答案的时间已经够做好几个了。说WPF简单确实不假,但要在多动手的前提下。多动手就能做到不求人,我们搞wpf好几年了,至今还没有用过第三方控件,因为这个框架已经灵活到你可以随意干任何想干的事。
解决方案六:
今天有时间可以帮你写一个,你能等的话
解决方案七:
引用4楼rocmemory的回复:

Quote: 引用2楼我是你的主体的回复:
Quote: 引用1楼rocmemory的回复:
ComboBox的下拉列表应该是个popup,然后带一个Items呈现容器,因为ComboBox的Items是平行关系的集合,所以无法通过修改模板的方式使它呈现为树形结构,这种需求只能是自己写一个用户控件来实现,要用到popup,里面放一个TreeView,至于文本框和箭头,自己画吧

你说的不对吧,在popup中加个TreeView就可以,问题是数据绑定和显示有问题

就是因为用ComboBox的数据模板无法完成树形结构,所以数据绑定和显示才有问题,你觉得把平行数据改为树形数据只是在界面上加个TreeView就可以解决?WPF里不是所有问题都可以通过修改模板来完成的,模板这个概念只是mvvm模式的基础,而不是所有问题的解决方案,它可以帮你完成呈现方式的一次性转换,但是如果要改变数据结构,就不能胜任了。而且我很奇怪,按我说的那样做个自定义控件不难吧?起码你在这里等答案的时间已经够做好几个了。说WPF简单确实不假,但要在多动手的前提下。多动手就能做到不求人,我们搞wpf好几年了,至今还没有用过第三方控件,因为这个框架已经灵活到你可以随意干任何想干的事。

引用5楼rocmemory的回复:

今天有时间可以帮你写一个,你能等的话

我只是简单的做到了上面的程度,在TreeView数据绑定的地方遇到了问题,我在网上找资料发现有人实现了该功能,但是很复杂,所以想看看有没有简单的办法,那就麻烦你写个自定义控件的实现方式,让我借鉴下,谢谢了
解决方案八:
这个是下拉DataGrid的,你可以仿着改改。
解决方案九:
引用7楼duanzi_peng的回复:

这个是下拉DataGrid的,你可以仿着改改。

我问下,如果我想封装到控件库,是继承微软自己的Combox好呢,还是做用户控件好一些
解决方案十:
引用8楼u012804018的回复:

Quote: 引用7楼duanzi_peng的回复:
这个是下拉DataGrid的,你可以仿着改改。

我问下,如果我想封装到控件库,是继承微软自己的Combox好呢,还是做用户控件好一些

当然是继承。重新设定它的items样式。

时间: 2024-09-14 07:03:21

WPF 如何设计ComboxTree控件的相关文章

imageview-visual studio窗体设计Image控件显示问题

问题描述 visual studio窗体设计Image控件显示问题 我用visual studio community 2013版新建了C# WPF项目,其中插入了一个Image控件,在设计器中是可以看到所插入的图片的,但一点击启动看效果时,其他都好,就是看不到Image控件对应的图片.请问是怎么回事? 我实在郁闷死了... 解决方案 1.是控件不显示,还是控件显示是叉如果是控件不显示,是控件的visvable属性设置为false啦如果是显示叉叉,是因为图片的路径不正确2.你给控件路径要给相对路

wpf中的用户控件库项目不能使用WindowsFormsHost??急!!!

问题描述 基于sharpdevelop框架的WPF开发,想在用户控件库项目中使用reportviewer控件,用了WindowsFormsHost,但是运行后不显示reportviewer.如果换成wpf窗体,就能显示reportviewer界面和数据.wpf中的用户控件库项目不能使用WindowsFormsHost吗? 解决方案 解决方案二:WindowsFormsHost是专门为window窗体设计的.放弃吧

mfc 界面 控件-mfc的界面设计和控件使用问题

问题描述 mfc的界面设计和控件使用问题 现在有多个指标,并且每个指标的评分规则都有多行.如果全部显示在一个界面上会很拥挤,如何实现当我点击一个图标时,会出现一个下拉框,显示相应指标的全部评分规则?求各位高手指点! 解决方案 这需要自定义控件,在MFC中可以参考Subclassing子类化技术,其实就是拦截事件消息,自己响应,而不是采用系统的默认行为.你可以在控件之中包含下拉框数据结构,然后重写单击事件,控制下拉框的显示/隐藏.www.codeproject.com网站创始人写了个开源的Ulti

WPF中使用MediaElement控件来进行音视频播放

WPF中可以使用MediaElement控件来进行音视频播放,然后需要做个进度条啥的,但是MediaElement.Position(进度)和MediaElement.NaturalDuration居然都不是依赖属性,简直不能忍! 好吧,首先说说比较传统的做法(winform?) slider用来显示进度以及调整进度,tb1显示当前进度的时间值,tb2显示视频的时长. player_Loaded 事件中使用DispatcherTimer来定时获取当前视频的播放进度, player_MediaOp

CYQ.Data 支持WPF相关的数据控件绑定(2013-08-09)

事件的结果 经过多天的思考及忙碌的开发及测试,CYQ.Data 终于在UI上全面支持WPF,至此,CYQ.Data 已经可以方便支持wpf的开发,同时,框架仍保留最低.net framework2.0版本的支持. 支持WPF的起因: CYQ.Data 一直是基于2.0语法下支持开发的框架,在未直接支持WPF之前,对于控件列表的绑定,因为WPF竟然不支持DataTable,研究后发现需要从MDataTable.ToDataTable().DefaultView来转一次绑定:另外对于UI控件,也只能

winform-c#2010的wpf程序怎么设置控件不可见?

问题描述 c#2010的wpf程序怎么设置控件不可见? winform的控件可以通过设置visible的值实现是否可见,但wpf不存在visible属性. 解决方案 label1.Visibility = Visibility.Hidden;//设置为隐藏 解决方案二: 隐藏:控件名.Visibility=Visibility.Hidden 显示: 控件名.Visibility=Visibility.Visible

WPF中引入WindowsForms控件的方法_C#教程

本文实例讲述了WPF中引入WindowsForms控件的方法.分享给大家供大家参考,具体如下: 环境: [1]WindowsXP with SP3 [2]VS2008 with SP1 正文: Step1:在现有工程中引入Windows Forms 鼠标右键[References]->选择[Add Reference]->[.NET]标签页 加入[WindowsFormsIntegration]和[System.Windows.Forms]两项 Step2:在XAML文件里加入 [S2-1]加

WPF:DataTemplateSelector设置控件不同的样式

原文 WPF:DataTemplateSelector设置控件不同的样式 最近想实现这么个东西,一个ListBox, 里面的ListBoxItem可能是文本框.下拉框.日期选择控件等等. 很自然的想到了DataTemplateSelector,并且事先定义好各类DataTemplate以显示不同的控件. 先定义好各类资源     <Window.Resources>         <DataTemplate x:Key="textBox">          

Windows窗体控件如何给WPF窗体中的控件传递信息????????

问题描述 请问大家,我这里有两个工程,一个是WPF窗体工程,一个是Windows窗体控件.然后WPF窗体工程中加载了Windows窗体控件.现在我再在WPF窗体中加入两个TextBox控件,我希望鼠标在Windows窗体控件内移动鼠标的时候,Windows窗体控件的Mouse_Move事件触发,并且该事件中能够编写代码把鼠标当前位置的X,Y坐标分别显示在WPF窗体的TextBox控件内.请问,这如何实现呢? 解决方案 解决方案二:自己顶一下.望大家帮忙.解决方案三:PostMessage解决方案