Przeglądaj źródła

Merge branch 'master' into CleanUpCakeBuildScript

Steven Kirk 8 lat temu
rodzic
commit
b2a6f93fc8
1 zmienionych plików z 15 dodań i 12 usunięć
  1. 15 12
      samples/ControlCatalog/Pages/TreeViewPage.xaml.cs

+ 15 - 12
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;
+                }
+            }
         }
     }
 }