读书人

silverlight 虚拟化 treeview解决办法

发布时间: 2012-12-14 10:33:07 作者: rapoo

silverlight 虚拟化 treeview
本帖最后由 Sandy945 于 2011-12-04 13:31:18 编辑 要做一颗树,已经是点击加载节点了 ,但是节点太多了 3w左右,需要接住虚拟化实现
下面是我虚拟化的东西 也实现了 但是
在点击节点的时候 ,treeview的滚动条自己滚动了


<sdk:TreeView x:Name="virtualTree" Margin="0,0,0,13">
<sdk:TreeView.ItemsPanel>
<ItemsPanelTemplate>
<!--<local:VirtrulaTreeNodesTest></local:VirtrulaTreeNodesTest>-->
<VirtualizingStackPanel>

</VirtualizingStackPanel>
</ItemsPanelTemplate>
</sdk:TreeView.ItemsPanel>
</sdk:TreeView>


换一种实现方式 代码如下 ,点击节点的时候 滚动条自己不会滚动,但是虚拟化没有了

<ScrollViewer Grid.Row="0" Background="Red" VirtualizingStackPanel.VirtualizationMode="Recycling"
VerticalScrollBarVisibility="Auto">
<sdk:TreeView x:Name="virtualTree" Margin="0,0,0,13">
<sdk:TreeView.ItemsPanel>
<ItemsPanelTemplate>

<VirtualizingStackPanel>

</VirtualizingStackPanel>
</ItemsPanelTemplate>
</sdk:TreeView.ItemsPanel>
</sdk:TreeView>
</ScrollViewer>


查看了msdn 有VirtualizingStackPanel
我没看出来 我哪里写错了 ,还希望大家帮忙看下 。
[最优解释]
试试

VirtualizingStackPanel.IsVirtualizing="True"
[其他解释]
sl版链接
[其他解释]
http://technet.microsoft.com/zh-cn/library/cc716882(VS.90).aspx
------其他解决方案--------------------



IsOptionElementsEnabled="True" ItemsOptionListType="None"
ItemTemplate="{StaticResource myTreeNodeTemplate}"
LoadOnDemand="treeView_LoadOnDemand"
IsVirtualizing="True"
IsLoadOnDemandEnabled="True"
IsRootLinesEnabled="True" Margin="10" IsTriStateMode="True" x:Name="UwayNetWorkTree">
</telerikNavigation:RadTreeView>



里面的节点 看自己需要添加吧 一旦节点过多的时候(超过1000感觉就慢了)建议不要用自带的treeitem ,实例化节点耗时会比较多
[其他解释]
学习silverlight知识
[其他解释]

引用:
暂时不结贴 希望有人能解释下 为什么滚动条在点击节点的时候 会自己动

说不上解释 看看在不借助第三方控件的情况下 看看有没有 什么 简单方便的方法
看第三方的控件,它的虚拟化做了不少工作,在短开发周期上 ,时间太紧了

博客园wpf虚拟化
[其他解释]
暂时不结贴 希望有人能解释下 为什么滚动条在点击节点的时候 会自己动
[其他解释]
非常感谢楼主的提问与最后的解答啊,最近也在用telerik这控件,但貌似这“虚拟化”在多棵树之间切换时,还是感觉到有延迟(节点各300+)。

PS:不知在结帖区挖坟有没有问题。。。。
[其他解释]
请问你这个问题解决了吗,如果不重写滚动条的话能不能解决“滚动条在点击节点的时候 会自己动

”这个问题

读书人网 >asp.net

热点推荐