commit
2132a4322f
@ -4,53 +4,79 @@
|
|||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:models="using:Semi.Avalonia.Demo.Pages"
|
||||||
xmlns:vm="clr-namespace:Semi.Avalonia.Demo.Pages"
|
xmlns:vm="clr-namespace:Semi.Avalonia.Demo.Pages"
|
||||||
d:DesignHeight="450"
|
d:DesignHeight="450"
|
||||||
d:DesignWidth="800"
|
d:DesignWidth="800"
|
||||||
x:CompileBindings="True"
|
x:CompileBindings="True"
|
||||||
x:DataType="vm:TreeViewVm"
|
x:DataType="vm:TreeViewVm"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d">
|
||||||
<StackPanel HorizontalAlignment="Left">
|
|
||||||
<TreeView>
|
<Grid ColumnDefinitions="*,*,*">
|
||||||
<TreeViewItem Header="Level 1">
|
|
||||||
<TreeViewItem Header="Level 2" />
|
<Border Theme="{StaticResource CardBorder}">
|
||||||
<TreeViewItem Header="Level 2" />
|
<TreeView>
|
||||||
<TreeViewItem Header="Level 2" />
|
<TreeViewItem Header="Level 1">
|
||||||
<TreeViewItem Header="Level 2" />
|
<TreeViewItem Header="Level 2" />
|
||||||
<TreeViewItem Header="Level 2">
|
<TreeViewItem Header="Level 2" />
|
||||||
<TreeViewItem Header="Level 3" />
|
<TreeViewItem Header="Level 2" />
|
||||||
<TreeViewItem Header="Level 3" />
|
<TreeViewItem Header="Level 2" />
|
||||||
<TreeViewItem>
|
<TreeViewItem Header="Level 2">
|
||||||
<TreeViewItem.Header>
|
<TreeViewItem Header="Level 3" />
|
||||||
<StackPanel>
|
<TreeViewItem Header="Level 3" />
|
||||||
<TextBlock>Layer 1</TextBlock>
|
<TreeViewItem>
|
||||||
<TextBlock>Layer 2</TextBlock>
|
<TreeViewItem.Header>
|
||||||
<TextBlock>Layer 3</TextBlock>
|
<StackPanel>
|
||||||
</StackPanel>
|
<TextBlock>Layer 1</TextBlock>
|
||||||
</TreeViewItem.Header>
|
<TextBlock>Layer 2</TextBlock>
|
||||||
<TreeViewItem Header="Level 4" />
|
<TextBlock>Layer 3</TextBlock>
|
||||||
<TreeViewItem Header="Level 4" />
|
</StackPanel>
|
||||||
<TreeViewItem Header="Level 4" />
|
</TreeViewItem.Header>
|
||||||
<TreeViewItem Header="Level 4" />
|
<TreeViewItem Header="Level 4" />
|
||||||
<TreeViewItem Header="Level 4" />
|
<TreeViewItem Header="Level 4" />
|
||||||
<TreeViewItem Header="Level 4" />
|
<TreeViewItem Header="Level 4" />
|
||||||
|
<TreeViewItem Header="Level 4" />
|
||||||
|
<TreeViewItem Header="Level 4" />
|
||||||
|
<TreeViewItem Header="Level 4" />
|
||||||
|
</TreeViewItem>
|
||||||
|
<TreeViewItem Header="Level 3" />
|
||||||
|
<TreeViewItem Header="Level 3" />
|
||||||
|
<TreeViewItem Header="Level 3" />
|
||||||
|
<TreeViewItem Header="Level 3" />
|
||||||
|
<TreeViewItem Header="Level 3" />
|
||||||
|
<TreeViewItem Header="Level 3" />
|
||||||
|
<TreeViewItem Header="Level 3" />
|
||||||
</TreeViewItem>
|
</TreeViewItem>
|
||||||
<TreeViewItem Header="Level 3" />
|
|
||||||
<TreeViewItem Header="Level 3" />
|
|
||||||
<TreeViewItem Header="Level 3" />
|
|
||||||
<TreeViewItem Header="Level 3" />
|
|
||||||
<TreeViewItem Header="Level 3" />
|
|
||||||
<TreeViewItem Header="Level 3" />
|
|
||||||
<TreeViewItem Header="Level 3" />
|
|
||||||
</TreeViewItem>
|
</TreeViewItem>
|
||||||
</TreeViewItem>
|
</TreeView>
|
||||||
</TreeView>
|
</Border>
|
||||||
<TreeView ItemsSource="{Binding Items}">
|
|
||||||
<TreeView.ItemTemplate>
|
<Border Grid.Column="1" Theme="{StaticResource CardBorder}">
|
||||||
<TreeDataTemplate ItemsSource="{Binding Items}">
|
<TreeView Margin="0,10" ItemsSource="{Binding Items}">
|
||||||
<TextBlock Text="{Binding Name}" />
|
<TreeView.ItemTemplate>
|
||||||
</TreeDataTemplate>
|
<TreeDataTemplate ItemsSource="{Binding Items}">
|
||||||
</TreeView.ItemTemplate>
|
<TextBlock Text="{Binding Name}" />
|
||||||
</TreeView>
|
</TreeDataTemplate>
|
||||||
</StackPanel>
|
</TreeView.ItemTemplate>
|
||||||
|
</TreeView>
|
||||||
|
</Border>
|
||||||
|
|
||||||
|
<Border Grid.Column="2" Theme="{StaticResource CardBorder}">
|
||||||
|
<TreeView ItemsSource="{Binding MultipleLevelItems}">
|
||||||
|
<TreeView.DataTemplates>
|
||||||
|
<TreeDataTemplate DataType="models:FirstItem" ItemsSource="{Binding SecondItems}">
|
||||||
|
<TextBlock Text="{Binding Name}" />
|
||||||
|
</TreeDataTemplate>
|
||||||
|
<TreeDataTemplate DataType="models:SecondItem" ItemsSource="{Binding ThirdItemItems}">
|
||||||
|
<TextBlock Text="{Binding Name}" />
|
||||||
|
</TreeDataTemplate>
|
||||||
|
<TreeDataTemplate DataType="models:ThirdItem">
|
||||||
|
<TextBlock Text="{Binding Name}" />
|
||||||
|
</TreeDataTemplate>
|
||||||
|
</TreeView.DataTemplates>
|
||||||
|
</TreeView>
|
||||||
|
</Border>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
@ -19,6 +19,8 @@ public class TreeViewVm : ObservableObject
|
|||||||
{
|
{
|
||||||
public ObservableCollection<TreeViewItemVm> Items { get; set; }
|
public ObservableCollection<TreeViewItemVm> Items { get; set; }
|
||||||
|
|
||||||
|
public ObservableCollection<FirstItem>? MultipleLevelItems { get; set; }
|
||||||
|
|
||||||
public TreeViewVm()
|
public TreeViewVm()
|
||||||
{
|
{
|
||||||
Items = new ObservableCollection<TreeViewItemVm>()
|
Items = new ObservableCollection<TreeViewItemVm>()
|
||||||
@ -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<TreeViewItemVm> Items { get; set; }
|
public ObservableCollection<TreeViewItemVm> Items { get; set; }
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public string Id { get; set; }
|
public string Id { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class ItemBase
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public string? Name { get; set; }
|
||||||
|
}
|
||||||
|
public class FirstItem : ItemBase
|
||||||
|
{
|
||||||
|
public ObservableCollection<SecondItem>? SecondItems { get; set; }
|
||||||
|
}
|
||||||
|
public class SecondItem : ItemBase
|
||||||
|
{
|
||||||
|
public ObservableCollection<ThirdItem>? ThirdItemItems { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
public class ThirdItem : ItemBase
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user