当前位置:  开发笔记 > 运维 > 正文

WPF中的多列树视图

如何解决《WPF中的多列树视图》经验,为你挑选了3个好方法。

任何人都知道我在哪里可以像WPF中的多列树视图一样获得控件?



1> Paolo Morett..:

SharpDevelop有一个ListView子类叫做SharpTreeView你要找的东西.

您可以在SharpDevelop的"Watch"窗口中看到此控件的实例:

SharpTreeView示例

Watch窗口中使用的XAML(如5.1.0 beta中所示):


    
        
            
                
                    
                        
                        
                            
                                
                                    
                                    
                                
                            
                        
                    
                
            
        
        
            
                
                    
                        
                            
                                
                                
                            
                        
                    
                
            
        
        
            
                
                    
                        
                            
                                
                                
                            
                        
                    
                
            
        
    

资源设置为SharpTreeView控件的View属性.



2> MrSlippers..:

我已经根据这里的旧博客文章实现了这一点.但如果我没记错的话,我必须做一些手工工作才能让事情正常进行.特别是滚动条.

但这应该会给你一个良好的开端.



3> PatrickV..:

如果不需要列标题,这很容易。您可以只提供一个项目容器模板,在右侧添加固定宽度的网格列,然后将其绑定到项目的相关数据。

TreeView的默认项目容器的网格定义为(添加了一些注释):

    
        
            
            
            
        
        
            
            
        
        
        
            
        
        
    

因此,只需扩展此网格即可在右侧包含可预测宽度的列,您将拥有这些列。

为新列添加列定义,使其自动调整大小

更新“ ItemsHost”的列范围以覆盖添加的列

将可预测宽度控件添加到该列:

受影响的部分:


...
   
...
   
...
   
...

如果添加的边框对于所有行都是相同的宽度,那么您将拥有一个看起来像带有列的树状视图的视图。这显然不能很好地扩展,但是如果只需要一个快速而肮脏的解决方案,您应该能够在几分钟内完成混合操作而无需添加外部控件/库的依赖项。

我们的需求迅速增长,我们在树外添加了一个带有列标签的网格,并将那里的列宽度数据绑定到这些“列”的宽度(实际上是使用自动调整大小的列在所涉及列中的跨距控件的宽度)。它有效,这就是我在防御中要说的。

如果您不介意(或不希望)跨越所有列的选择框(“ Bd”边框),也可以在生成的项目模板中而不是在项目容器中完成此方法。

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有