Skip to content

Commit 51188cb

Browse files
committed
Install TreeDataGrid & add a demo page
1 parent cb1ecd1 commit 51188cb

File tree

8 files changed

+107
-2
lines changed

8 files changed

+107
-2
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<UserControl xmlns="https://github.com/avaloniaui"
2+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
3+
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
4+
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
5+
xmlns:vm="using:SampleApp.ViewModels"
6+
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
7+
x:Class="SampleApp.DemoPages.TreeDataGridDemo"
8+
x:DataType="vm:TreeDataGridViewModel">
9+
10+
<Design.DataContext>
11+
<vm:TreeDataGridViewModel />
12+
</Design.DataContext>
13+
14+
<TreeDataGrid Source="{Binding Source} " />
15+
</UserControl>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
using Avalonia.Controls;
2+
3+
namespace SampleApp.DemoPages;
4+
5+
public partial class TreeDataGridDemo : UserControl
6+
{
7+
public TreeDataGridDemo()
8+
{
9+
InitializeComponent();
10+
}
11+
}

samples/SampleApp/MainWindow.axaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,13 @@
6868
<TabItem Header="Toggle Switch [WIP]">
6969
<demoPages:ToggleSwitchDemo />
7070
</TabItem>
71+
<TabItem Header="TreeDataGrid" IsSelected="True">
72+
<demoPages:TreeDataGridDemo>
73+
<demoPages:TreeDataGridDemo.DataContext>
74+
<vm:TreeDataGridViewModel />
75+
</demoPages:TreeDataGridDemo.DataContext>
76+
</demoPages:TreeDataGridDemo>
77+
</TabItem>
7178
<TabItem Header="TreeView">
7279
<demoPages:TreeViewDemo />
7380
</TabItem>

samples/SampleApp/SampleApp.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
<ItemGroup>
1717
<PackageReference Include="Avalonia" Version="11.3.0"/>
1818
<PackageReference Include="Avalonia.Controls.DataGrid" Version="11.3.0"/>
19+
<PackageReference Include="Avalonia.Controls.TreeDataGrid" Version="11.1.1"/>
1920
<PackageReference Include="Avalonia.Desktop" Version="11.3.0"/>
2021
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.3.0"/>
2122
</ItemGroup>
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
using System.Collections.ObjectModel;
2+
using Avalonia.Controls;
3+
using Avalonia.Controls.Models.TreeDataGrid;
4+
using CommunityToolkit.Mvvm.ComponentModel;
5+
6+
namespace SampleApp.ViewModels;
7+
8+
public class Person
9+
{
10+
public string? FirstName { get; set; }
11+
public string? LastName { get; set; }
12+
public int Age { get; set; }
13+
public ObservableCollection<Person> Children { get; } = new();
14+
}
15+
16+
public class TreeDataGridViewModel : ObservableObject
17+
{
18+
private readonly ObservableCollection<Person> _people = new()
19+
{
20+
new Person
21+
{
22+
FirstName = "Eleanor",
23+
LastName = "Pope",
24+
Age = 32,
25+
Children =
26+
{
27+
new Person { FirstName = "Marcel", LastName = "Gutierrez", Age = 4 }
28+
}
29+
},
30+
new Person
31+
{
32+
FirstName = "Jeremy",
33+
LastName = "Navarro",
34+
Age = 74,
35+
Children =
36+
{
37+
new Person
38+
{
39+
FirstName = "Jane",
40+
LastName = "Navarro",
41+
Age = 42,
42+
Children =
43+
{
44+
new Person { FirstName = "Lailah ", LastName = "Velazquez", Age = 16 }
45+
}
46+
}
47+
}
48+
},
49+
new Person { FirstName = "Jazmine", LastName = "Schroeder", Age = 52 }
50+
};
51+
52+
public TreeDataGridViewModel()
53+
{
54+
Source = new HierarchicalTreeDataGridSource<Person>(_people)
55+
{
56+
Columns =
57+
{
58+
new HierarchicalExpanderColumn<Person>(
59+
new TextColumn<Person, string>("First Name", x => x.FirstName),
60+
x => x.Children),
61+
new TextColumn<Person, string>("Last Name", x => x.LastName),
62+
new TextColumn<Person, int>("Age", x => x.Age)
63+
}
64+
};
65+
}
66+
67+
public HierarchicalTreeDataGridSource<Person> Source { get; }
68+
}

src/Devolutions.AvaloniaTheme.DevExpress/Devolutions.AvaloniaTheme.DevExpress.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
<PackageReference Include="Avalonia" Version="[11.2.0,)"/>
1616
<PackageReference Include="Avalonia.Themes.Fluent" Version="[11.2.0,)"/>
1717
<PackageReference Include="Avalonia.Controls.DataGrid" Version="[11.2.0,)"/>
18+
<PackageReference Include="Avalonia.Controls.TreeDataGrid" Version="11.1.1"/>
1819
<PackageReference Include="Devolutions.AvaloniaControls" Version="[2025.5.28,)"/>
1920
</ItemGroup>
2021

src/Devolutions.AvaloniaTheme.Linux/Devolutions.AvaloniaTheme.Linux.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
<PackageReference Include="Avalonia" Version="[11.2.0,)"/>
1616
<PackageReference Include="Avalonia.Themes.Fluent" Version="[11.2.0,)"/>
1717
<PackageReference Include="Avalonia.Controls.DataGrid" Version="[11.2.0,)"/>
18+
<PackageReference Include="Avalonia.Controls.TreeDataGrid" Version="11.1.1"/>
1819
<!--
1920
Avalonia.Svg.Skia 11.2.7.1 require at least 3.116, which is bugged atm on linux.
2021
https://github.com/mono/SkiaSharp/issues/3117

src/Devolutions.AvaloniaTheme.MacOS/Devolutions.AvaloniaTheme.MacOS.csproj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@
1212
</PropertyGroup>
1313
<ItemGroup>
1414
<PackageReference Include="Avalonia" Version="[11.2.0,)"/>
15-
<PackageReference Include="Avalonia.Controls.DataGrid" Version="[11.2.0,)"/>
16-
<PackageReference Include="Avalonia.Svg.Skia" Version="[11.2.0,)"/>
1715
<PackageReference Include="Avalonia.Themes.Fluent" Version="[11.2.0,)"/>
16+
<PackageReference Include="Avalonia.Svg.Skia" Version="[11.2.0,)"/>
17+
<PackageReference Include="Avalonia.Controls.DataGrid" Version="[11.2.0,)"/>
18+
<PackageReference Include="Avalonia.Controls.TreeDataGrid" Version="11.1.1"/>
1819
<PackageReference Include="Devolutions.AvaloniaControls" Version="[2025.5.28,)"/>
1920
</ItemGroup>
2021
<ItemGroup>

0 commit comments

Comments
 (0)