Skip to content

Commit 3090384

Browse files
authored
TreeView Images and DataBinding (#80)
* Added support for SiteMap Xml documents * Added TreeView DataBinding events * Updated Blazor WebAssembly to 3.2 Preview 1 * Added Image and ImageToolTip support to the TreeView * Implemented TreeViewImageSet
1 parent aa5b835 commit 3090384

File tree

98 files changed

+1022
-118
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+1022
-118
lines changed

Directory.Build.props

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,9 @@
66
<PrivateAssets>all</PrivateAssets>
77
</PackageReference>
88
</ItemGroup>
9+
10+
<PropertyGroup>
11+
<BlazorWebAssemblyVersion>3.2.0-preview1.20073.1</BlazorWebAssemblyVersion>
12+
</PropertyGroup>
13+
914
</Project>

docs/TreeView.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ The TreeView component is meant to emulate the asp:TreeView control in markup an
1111
- TreeNode expand and collapse events
1212
- TreeNode checkbox checked / unchecked events
1313
- XmlDocument databinding
14+
- SiteMap databinding as an XmlDocument
15+
- Databinding events
1416

1517
##### [Back to top](#treeview)
1618

samples/AfterBlazorClientSide/AfterBlazorClientSide.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
</ItemGroup>
1717

1818
<ItemGroup>
19-
<PackageReference Include="Microsoft.AspNetCore.Blazor" Version="3.1.0-preview4.19579.2" />
20-
<PackageReference Include="Microsoft.AspNetCore.Blazor.Build" Version="3.1.0-preview4.19579.2" PrivateAssets="all" />
21-
<PackageReference Include="Microsoft.AspNetCore.Blazor.HttpClient" Version="3.1.0-preview4.19579.2" />
22-
<PackageReference Include="Microsoft.AspNetCore.Blazor.DevServer" Version="3.1.0-preview4.19579.2" PrivateAssets="all" />
19+
<PackageReference Include="Microsoft.AspNetCore.Blazor" Version="$(BlazorWebAssemblyVersion)" />
20+
<PackageReference Include="Microsoft.AspNetCore.Blazor.Build" Version="$(BlazorWebAssemblyVersion)" PrivateAssets="all" />
21+
<PackageReference Include="Microsoft.AspNetCore.Blazor.HttpClient" Version="$(BlazorWebAssemblyVersion)" />
22+
<PackageReference Include="Microsoft.AspNetCore.Blazor.DevServer" Version="$(BlazorWebAssemblyVersion)" PrivateAssets="all" />
2323
</ItemGroup>
2424

2525
<ItemGroup>
Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,31 @@
11
using Microsoft.AspNetCore.Blazor.Hosting;
2+
using Microsoft.AspNetCore.Components.Authorization;
3+
using Microsoft.Extensions.DependencyInjection;
4+
using System.Threading.Tasks;
25

36
namespace AfterBlazorClientSide
47
{
58
public class Program
69
{
7-
public static void Main(string[] args)
10+
public static async Task Main(string[] args)
811
{
9-
CreateHostBuilder(args).Build().Run();
12+
13+
var builder = WebAssemblyHostBuilder.CreateDefault(args);
14+
builder.RootComponents.Add<App>("app");
15+
16+
builder.Services.AddScoped<AuthenticationStateProvider, StaticAuthStateProvider>();
17+
18+
await builder.Build().RunAsync();
19+
1020
}
1121

12-
public static IWebAssemblyHostBuilder CreateHostBuilder(string[] args) =>
13-
BlazorWebAssemblyHost.CreateDefaultBuilder()
14-
.UseBlazorStartup<Startup>();
1522
}
23+
24+
public static class Startup
25+
{
26+
27+
public static string ApplicationName => "Blazor WebAssembly";
28+
29+
}
30+
1631
}

samples/AfterBlazorClientSide/Startup.cs

Lines changed: 0 additions & 22 deletions
This file was deleted.
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
@page "/ControlSamples/TreeView/ArrowsImages"
2+
@using static BlazorWebFormsComponents.Enums.TreeNodeTypes
3+
@using static BlazorWebFormsComponents.Enums.TreeViewImageSet
4+
5+
<h2>TreeView Component homepage</h2>
6+
7+
<p>Here is a simple static tree view</p>
8+
9+
<TreeView ID="SampleTreeView" runat="server"
10+
OnTreeNodeCheckChanged="CheckChanged"
11+
ImageSet="Arrows"
12+
ShowCheckBoxes="Root|Parent">
13+
<Nodes>
14+
<TreeNode Value="Home"
15+
NavigateUrl="/"
16+
Text="Home"
17+
Target="Content"
18+
Expanded="true">
19+
<TreeNode Value="Foo" Text="Foo"></TreeNode>
20+
<TreeNode Value="Bar" Text="Bar">
21+
<TreeNode Value="Baz" Text="Baz">
22+
<TreeNode Value="BlazorMisterMagoo" Text="BlazorMisterMagoo">
23+
24+
</TreeNode>
25+
</TreeNode>
26+
</TreeNode>
27+
</TreeNode>
28+
</Nodes>
29+
</TreeView>
30+
31+
Checkboxes clicked: @clickCount
32+
33+
@code {
34+
35+
public int clickCount { get; set; } = 0;
36+
37+
private void CheckChanged(TreeNodeEventArgs args) {
38+
39+
clickCount++;
40+
base.StateHasChanged();
41+
42+
}
43+
44+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
@page "/ControlSamples/TreeView/BulletImages"
2+
@using static BlazorWebFormsComponents.Enums.TreeNodeTypes
3+
@using static BlazorWebFormsComponents.Enums.TreeViewImageSet
4+
5+
<h2>TreeView Component homepage</h2>
6+
7+
<p>Here is a simple static tree view</p>
8+
9+
<TreeView ID="SampleTreeView" runat="server"
10+
OnTreeNodeCheckChanged="CheckChanged"
11+
ImageSet="BulletedList"
12+
ShowCheckBoxes="Root|Parent">
13+
<Nodes>
14+
<TreeNode Value="Home"
15+
NavigateUrl="/"
16+
Text="Home"
17+
Target="Content"
18+
Expanded="true">
19+
<TreeNode Value="Foo" Text="Foo"></TreeNode>
20+
<TreeNode Value="Bar" Text="Bar">
21+
<TreeNode Value="Baz" Text="Baz">
22+
<TreeNode Value="BlazorMisterMagoo" Text="BlazorMisterMagoo">
23+
24+
</TreeNode>
25+
</TreeNode>
26+
</TreeNode>
27+
</TreeNode>
28+
</Nodes>
29+
</TreeView>
30+
31+
Checkboxes clicked: @clickCount
32+
33+
@code {
34+
35+
public int clickCount { get; set; } = 0;
36+
37+
private void CheckChanged(TreeNodeEventArgs args) {
38+
39+
clickCount++;
40+
base.StateHasChanged();
41+
42+
}
43+
44+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
@page "/ControlSamples/TreeView/BulletsNoExpand"
2+
@using static BlazorWebFormsComponents.Enums.TreeNodeTypes
3+
@using static BlazorWebFormsComponents.Enums.TreeViewImageSet
4+
5+
<h2>TreeView Bullets with No Expansion</h2>
6+
7+
<p>Here is a simple static tree view with bullets for nodes and no expand / collapse capabilities</p>
8+
9+
<TreeView ID="SampleTreeView" runat="server"
10+
ShowExpandCollapse="false"
11+
ImageSet="BulletedList">
12+
<Nodes>
13+
<TreeNode Value="Home"
14+
NavigateUrl="/"
15+
Text="Home"
16+
Target="Content"
17+
Expanded="true">
18+
<TreeNode Value="Foo" Text="Foo"></TreeNode>
19+
<TreeNode Value="Bar" Text="Bar">
20+
<TreeNode Value="Baz" Text="Baz">
21+
<TreeNode Value="BlazorMisterMagoo" Text="BlazorMisterMagoo">
22+
23+
</TreeNode>
24+
</TreeNode>
25+
</TreeNode>
26+
</TreeNode>
27+
</Nodes>
28+
</TreeView>
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
@page "/ControlSamples/TreeView/Images"
2+
@using static BlazorWebFormsComponents.Enums.TreeNodeTypes
3+
4+
<h2>TreeView Component homepage</h2>
5+
6+
<p>Here is a simple static tree view</p>
7+
8+
<TreeView ID="SampleTreeView" runat="server"
9+
OnTreeNodeCheckChanged="CheckChanged"
10+
ShowCheckBoxes="Root|Parent">
11+
<Nodes>
12+
<TreeNode Value="Home"
13+
NavigateUrl="/"
14+
Text="Home"
15+
Target="Content"
16+
Expanded="true">
17+
<TreeNode Value="Foo" Text="Foo" ImageToolTip="C# is Super!" ImageUrl="/img/csharp_56.png"></TreeNode>
18+
<TreeNode Value="Bar" Text="Bar">
19+
<TreeNode Value="Baz" Text="Baz">
20+
<TreeNode Value="BlazorMisterMagoo" Text="BlazorMisterMagoo">
21+
22+
</TreeNode>
23+
</TreeNode>
24+
</TreeNode>
25+
</TreeNode>
26+
</Nodes>
27+
</TreeView>
28+
29+
Checkboxes clicked: @clickCount
30+
31+
@code {
32+
33+
public int clickCount { get; set; } = 0;
34+
35+
private void CheckChanged(TreeNodeEventArgs args) {
36+
37+
clickCount++;
38+
base.StateHasChanged();
39+
40+
}
41+
42+
}

samples/AfterBlazorServerSide/Pages/ControlSamples/TreeView/Index.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ Checkboxes clicked: @clickCount
3232

3333
public int clickCount { get; set; } = 0;
3434

35-
private void CheckChanged(object sender, TreeNodeEventArgs args) {
35+
private void CheckChanged(TreeNodeEventArgs args) {
3636

3737
clickCount++;
3838
base.StateHasChanged();

0 commit comments

Comments
 (0)