社区
组件/控件开发
帖子详情
WPF中类似TreeListView控件的实现
wfg2004
2008-10-08 06:34:40
在WPF中实现ListView和TreeView结合的效果。
当我点击ListView的一行中的一个按钮时,
这行相应的详细数据以TreeView的方式详细展开,
效果见附件。
有知道源代码的或者知道解决思路的请告诉我,谢谢哟
分不够再加
最初载入的展开前效果
点击一行展开效果
全部展开效果
...全文
508
9
打赏
收藏
WPF中类似TreeListView控件的实现
在WPF中实现ListView和TreeView结合的效果。 当我点击ListView的一行中的一个按钮时, 这行相应的详细数据以TreeView的方式详细展开, 效果见附件。 有知道源代码的或者知道解决思路的请告诉我,谢谢哟 分不够再加 最初载入的展开前效果 点击一行展开效果 全部展开效果
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lookmai
2010-09-28
打赏
举报
回复
能否发一份源码给我?谢谢
maibo@163.com
[Quote=引用 6 楼 zhouyongh 的回复:]
呵呵,很眼熟。
刚刚写了这样的一个控件 重写一下TreeView和TreeViewItem, 再搞一下DataTemplate和HierarchicalDataTemplate就可以了。
给你写点代码 :
XAML code
<Style x:Key="TreeViewStyle" TargetType="TreeView">
<Setter Property=……
[/Quote]
拉达曼迪斯II
2008-10-10
打赏
举报
回复
自定义ITEMTEMPLATE。
有什么困难的?????
wfg2004
2008-10-10
打赏
举报
回复
我只找到一个很类似的,是从TreeView继承改写的,但是还不是偶想要的效果。
看这个样子好像真的很难,请世界高手出现啊 呵呵
Doublehappywolf
2008-10-10
打赏
举报
回复
我觉得好东西大家应该一起分享,我前段时间也是一直在求购,就是没人给我回,唉,大家不要只有求时才出现嘛
Doublehappywolf
2008-10-10
打赏
举报
回复
我有前几天也是需要解决这个问题,不过我现在有了一个控件,可以解决这个问题,是一个叫SUPERGRID的控件,你给我邮箱我发给你,当然不要忘记给分哦,分数你看着给
zhouyongh
2008-10-10
打赏
举报
回复
呵呵,很眼熟。
刚刚写了这样的一个控件 重写一下TreeView和TreeViewItem, 再搞一下DataTemplate和HierarchicalDataTemplate就可以了。
给你写点代码 :
[code=XAML]
<Style x:Key="TreeViewStyle" TargetType="TreeView">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Margin" Value="0"/>
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="Width" Value="Auto"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TreeView">
<Border SnapsToDevicePixels="True">
<ScrollViewer CanContentScroll="False" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Disabled"
Padding="{TemplateBinding Control.Padding}" Background="{TemplateBinding Panel.Background}"
SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}" Focusable="False">
<ItemsPresenter />
</ScrollViewer>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
[/code]
[code=XAML]
<Style x:Key="TreeViewItemStyle" BasedOn="{x:Null}" TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding Path=IsExpanded, Mode=OneWay}" />
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate TargetType="TreeViewItem">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<ContentPresenter Content="{TemplateBinding HeaderedContentControl.Header}" Margin="0"
ContentTemplate="{TemplateBinding HeaderedContentControl.HeaderTemplate}"
ContentTemplateSelector="{TemplateBinding HeaderedContentControl.HeaderTemplateSelector}"
ContentSource="Header"
Name="PART_Header" SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}"/>
<ItemsPresenter Name="ItemsHost" Margin="0" Grid.Row="1"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="TreeViewItem.IsExpanded" Value="False">
<Setter Property="UIElement.Visibility" TargetName="ItemsHost">
<Setter.Value>
<x:Static Member="Visibility.Collapsed" />
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
[/code]
你要做的就是使ContentPresenter 和 ItemsPresenter 使用适当的数据模板,DataType或者DataTemplateSelector。
我是使用M-V-ViewModel做的,DataContext是我自己定义的TreeViewItemViewModel,当然,数据结构由你自己定义。
其实这种控件的制作很简单,你找准思路就可以。WPF要思路活一点,不要一眼看成什么ListView和TreeView的结合体,那样会限制你。
外面是一个ItemsControl, 里面每一个Item是一个HeaderedItemsControl。剩下你选一下WPF哪些控件拿起来用方便,组合捏吧改一改,就可以了。
Hope this helps
panda3
2008-10-09
打赏
举报
回复
只能帮顶
一游
2008-10-09
打赏
举报
回复
这个要写出来很有点麻烦,你只能看运气了,看有没有以前做过有现成的代码,
lupanlupan
2008-10-08
打赏
举报
回复
占沙发
WPF
控件
Tree
Grid/
类似
Tree
ListView
通过继承
WPF
控件
Datagrid,设计具有展开折叠功能的
Tree
ListView
,相对于网上较为流行的使用GridView和
Tree
View组合
实现
的
Tree
ListView
,本
控件
纯粹使用Datagrid扩展,并具备编辑功能,完全支持MVVM操作,有点
类似
Devexpress的相应
控件
,既可以简单的绑定到Datatable,因此保存数据相当方便,并通过Key和ParentKey在内部
实现
分级,外部只是简单的获取数据值即可,本
控件
屏蔽了添加和删除功能,一般只需要修改而已,当然由于Datagrid的强大编辑性,扩展这些功能很容易。
WPF
具有多选功能的
Tree
ListView
控件
这个是最好的
wpf
各种实用
控件
应用
各种
控件
的应用:Chart,颜色板,播放器插件,进度条,故事版,Word与Excel表格,FlowDocument,
Tree
listview
,注册机,log4net等等等
WPF
虚线
Tree
View
WPF
自定义样式
Tree
view,带有虚线。
tree
ListView
树形
listview
组件/控件开发
8,833
社区成员
7,151
社区内容
发帖
与我相关
我的任务
组件/控件开发
.NET技术 组件/控件开发
复制链接
扫一扫
分享
社区描述
.NET技术 组件/控件开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章