Browse Source

Merge pull request #882 from kekekeks/samplemem

Don't spawn 1KK treeview nodes immediately
pull/883/head
Nikita Tsukanov 9 years ago
committed by GitHub
parent
commit
f7b4567af0
  1. 27
      samples/ControlCatalog/Pages/TreeViewPage.xaml.cs

27
samples/ControlCatalog/Pages/TreeViewPage.xaml.cs

@ -11,7 +11,7 @@ namespace ControlCatalog.Pages
public TreeViewPage()
{
this.InitializeComponent();
DataContext = CreateNodes(0);
DataContext = new Node().Children;
}
private void InitializeComponent()
@ -19,19 +19,22 @@ namespace ControlCatalog.Pages
AvaloniaXamlLoader.Load(this);
}
private IList<Node> CreateNodes(int level)
public class Node
{
return Enumerable.Range(0, 10).Select(x => new Node
private IList<Node> _children;
public string Header { get; private set; }
public IList<Node> Children
{
Header = $"Item {x}",
Children = level < 5 ? CreateNodes(level + 1) : null,
}).ToList();
}
private class Node
{
public string Header { get; set; }
public IList<Node> Children { get; set; }
get
{
if (_children == null)
{
_children = Enumerable.Range(1, 10).Select(i => new Node() {Header = $"Item {i}"})
.ToArray();
}
return _children;
}
}
}
}
}

Loading…
Cancel
Save