diff --git a/samples/ControlCatalog/Pages/TreeViewPage.xaml.cs b/samples/ControlCatalog/Pages/TreeViewPage.xaml.cs index a630b90dbd..a83f9cf43f 100644 --- a/samples/ControlCatalog/Pages/TreeViewPage.xaml.cs +++ b/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 CreateNodes(int level) + public class Node { - return Enumerable.Range(0, 10).Select(x => new Node + private IList _children; + public string Header { get; private set; } + public IList Children { - Header = $"Item {x}", - Children = level < 5 ? CreateNodes(level + 1) : null, - }).ToList(); - } - - private class Node - { - public string Header { get; set; } - public IList Children { get; set; } + get + { + if (_children == null) + { + _children = Enumerable.Range(1, 10).Select(i => new Node() {Header = $"Item {i}"}) + .ToArray(); + } + return _children; + } + } } } }