Eli*_*gan 5 c# wpf treeview wpf-controls data-virtualization
我正在寻找一个wpf控件(免费或商业).树应支持所有常规树视图特性(样式,数据模板,控件模板......),并支持使用Columns布局(类似于Visual Studio中的Watch窗口).
但是也:
我不想自己构建树,我正在寻找现有的实现,至少支持虚拟化和数据虚拟化.
我见过的最好的例子是Josh Smith 的 TreeView。它使用按需加载并具有文本搜索。
要包含DataVirtualization您应该使用:
<TreeView
VirtualizingStackPanel.IsVirtualizing = "True"
VirtualizingStackPanel.VirtualizationMode = "Recycling" />
Run Code Online (Sandbox Code Playgroud)
但要小心,只有在使用Virtualization 时才有效TreeViewBinding,而不是在代码中一一生成节点时有效,如下例所示:
TreeViewItem rootItem = new TreeViewItem() { Header = "Item Level 0" };
for (int i = 0; i < 1000; i++)
{
TreeViewItem itemLevel1 = new TreeViewItem() { Header = "Item Level 1" };
itemLevel1.Items.Add(new TreeViewItem());
rootItem.Items.Add(itemLevel1);
}
Run Code Online (Sandbox Code Playgroud)
更新:
您可以使用DevExpress TreeList控件。它是免费试用的。
或者Telerik 的 TreeView控件。这是 30 天的免费试用。查看他们的演示,您甚至可以下载并尝试它们。
更新1:
如果您对 Josh Smith 的 TreeView性能有任何疑问,那么我可以谈谈我的经验:
TreeView并不绝对违反 MVVM 规则,因为它viewModels用于TreeViewItems. 这意味着如果您TreeViewITem的viewModel. 例如这个错误。最后,我想说我真的很高兴TreeView by JoshSmith在我的生产应用程序中选择了它,因为它的支持和编辑非常简单。它的性能确实很棒。
我的照片TreeView:
| 归档时间: |
|
| 查看次数: |
682 次 |
| 最近记录: |