今天我决定最终尝试虚拟化TreeView.要做到这一点,需要绑定.所以我决定进行2项测试 - 基于类型+虚拟化的HierarchicalDataTemplate.
我为一些数据创建了一个基类.从基类创建了2个派生类.制作2个HierarchicalDataTemplate(每个派生类1个)以获得不同的节点格式.并运行2种类型的10k节点的人口.
类别:
public class ListItem_Generic
{
public string Name { get; protected set; }
public ListItem_Generic(string Name = "") { this.Name = Name; }
}
public class ListItem_Single : ListItem_Generic
{
public ListItem_Single(string Name = "") : base(Name) { }
}
public class ListItem_Multi : ListItem_Generic
{
public List<ListItem_Generic> Items { get; protected set; }
public ListItem_Multi(string Name = "", List<ListItem_Generic> Items = null)
: base(Name)
{
if (Items == null)
this.Items = new List<ListItem_Generic>();
else
this.Items …Run Code Online (Sandbox Code Playgroud)