diff --git a/demo/Semi.Avalonia.Demo/Pages/TreeViewDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/TreeViewDemo.axaml
index 4cbba96..1f5c8dc 100644
--- a/demo/Semi.Avalonia.Demo/Pages/TreeViewDemo.axaml
+++ b/demo/Semi.Avalonia.Demo/Pages/TreeViewDemo.axaml
@@ -4,6 +4,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:models="using:Semi.Avalonia.Demo.Pages"
xmlns:vm="clr-namespace:Semi.Avalonia.Demo.Pages"
d:DesignHeight="450"
d:DesignWidth="800"
@@ -11,46 +12,69 @@
x:DataType="vm:TreeViewVm"
mc:Ignorable="d">
-
-
-
-
-
-
-
-
-
-
-
-
- Layer 1
- Layer 2
- Layer 3
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Layer 1
+ Layer 2
+ Layer 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/demo/Semi.Avalonia.Demo/Pages/TreeViewDemo.axaml.cs b/demo/Semi.Avalonia.Demo/Pages/TreeViewDemo.axaml.cs
index 1bd90f7..6674925 100644
--- a/demo/Semi.Avalonia.Demo/Pages/TreeViewDemo.axaml.cs
+++ b/demo/Semi.Avalonia.Demo/Pages/TreeViewDemo.axaml.cs
@@ -19,6 +19,8 @@ public class TreeViewVm : ObservableObject
{
public ObservableCollection Items { get; set; }
+ public ObservableCollection? MultipleLevelItems { get; set; }
+
public TreeViewVm()
{
Items = new ObservableCollection()
@@ -33,6 +35,25 @@ public class TreeViewVm : ObservableObject
},
},
};
+
+ MultipleLevelItems = new();
+ for (int i = 1; i < 6; i++)
+ {
+ FirstItem firstItem = new FirstItem { Id = i, Name = $"FirstItem {i}" };
+ firstItem.SecondItems = new();
+ for (int j = 1; j < 6; j++)
+ {
+ SecondItem secondItem = new SecondItem { Id = j, Name = $"SecondItem {j}" };
+ secondItem.ThirdItemItems = new();
+ for (int k = 1; k < 6; k++)
+ {
+ ThirdItem thirdItem = new ThirdItem { Id = k, Name = $"ThirdItem {k}" };
+ secondItem.ThirdItemItems.Add(thirdItem);
+ }
+ firstItem.SecondItems.Add(secondItem);
+ }
+ MultipleLevelItems.Add(firstItem);
+ }
}
}
@@ -41,4 +62,25 @@ public partial class TreeViewItemVm : ObservableObject
public ObservableCollection Items { get; set; }
public string Name { get; set; }
public string Id { get; set; }
-}
\ No newline at end of file
+}
+
+public class ItemBase
+{
+ public int Id { get; set; }
+ public string? Name { get; set; }
+}
+public class FirstItem : ItemBase
+{
+ public ObservableCollection? SecondItems { get; set; }
+}
+public class SecondItem : ItemBase
+{
+ public ObservableCollection? ThirdItemItems { get; set; }
+
+}
+public class ThirdItem : ItemBase
+{
+}
+
+
+