Skip to content

Commit 92cdc3e

Browse files
committed
update: enhance theme management and resource handling
1 parent 38222d9 commit 92cdc3e

File tree

382 files changed

+64146
-183
lines changed

Some content is hidden

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

382 files changed

+64146
-183
lines changed

RevitDevTool.sln

Lines changed: 68 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,27 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.13.35931.197
5+
MinimumVisualStudioVersion = 10.0.40219.1
36
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{1EB1EA41-E100-4105-8EF6-4931345ADF56}"
47
ProjectSection(SolutionItems) = preProject
58
.gitignore = .gitignore
9+
Build\Build.Configuration.cs = Build\Build.Configuration.cs
610
Changelog.md = Changelog.md
711
Readme.md = Readme.md
8-
Build\Build.Configuration.cs = Build\Build.Configuration.cs
912
EndProjectSection
1013
EndProject
1114
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Automation", "Automation", "{91D068A4-CC13-4DF2-881B-FF41E8D32A71}"
1215
EndProject
13-
Project("{12A0A887-1C2E-4920-AADD-5C3277B4082A}") = "Build", "build\Build.csproj", "{7895EAFA-9A58-42C5-A1D5-2D38B54357FA}"
16+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Build", "build\Build.csproj", "{7895EAFA-9A58-42C5-A1D5-2D38B54357FA}"
1417
EndProject
15-
Project("{12A0A887-1C2E-4920-AADD-5C3277B4082A}") = "Installer", "install\Installer.csproj", "{6888FA85-42D0-408B-BF96-F8CEE3368133}"
18+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Installer", "install\Installer.csproj", "{6888FA85-42D0-408B-BF96-F8CEE3368133}"
1619
EndProject
1720
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RevitDevTool", "source\RevitDevTool\RevitDevTool.csproj", "{DD53351A-AD4D-48A0-897F-EA44F84A6A52}"
1821
EndProject
19-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RevitDevTool.DirectContext3D", "source\RevitDevTool.DirectContext3D\RevitDevTool.DirectContext3D.csproj", "{C85B17F0-D83A-4D64-8C02-EED3304CEC76}"
22+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RevitDevTool.UI", "source\RevitDevTool.UI\RevitDevTool.UI.csproj", "{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}"
23+
EndProject
24+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RevitDevTool.UI.Abstractions", "source\RevitDevTool.UI.Abstractions\RevitDevTool.UI.Abstractions.csproj", "{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}"
2025
EndProject
2126
Global
2227
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -68,10 +73,10 @@ Global
6873
{DD53351A-AD4D-48A0-897F-EA44F84A6A52}.Debug R24|Any CPU.Build.0 = Debug R24|Any CPU
6974
{DD53351A-AD4D-48A0-897F-EA44F84A6A52}.Debug R25|Any CPU.ActiveCfg = Debug R25|Any CPU
7075
{DD53351A-AD4D-48A0-897F-EA44F84A6A52}.Debug R25|Any CPU.Build.0 = Debug R25|Any CPU
71-
{DD53351A-AD4D-48A0-897F-EA44F84A6A52}.Debug R26|Any CPU.ActiveCfg = Debug R26|Any CPU
72-
{DD53351A-AD4D-48A0-897F-EA44F84A6A52}.Debug R26|Any CPU.Build.0 = Debug R26|Any CPU
73-
{DD53351A-AD4D-48A0-897F-EA44F84A6A52}.Release R21|Any CPU.ActiveCfg = Release R21|Any CPU
74-
{DD53351A-AD4D-48A0-897F-EA44F84A6A52}.Release R21|Any CPU.Build.0 = Release R21|Any CPU
76+
{DD53351A-AD4D-48A0-897F-EA44F84A6A52}.Debug R26|Any CPU.ActiveCfg = Debug R26|Any CPU
77+
{DD53351A-AD4D-48A0-897F-EA44F84A6A52}.Debug R26|Any CPU.Build.0 = Debug R26|Any CPU
78+
{DD53351A-AD4D-48A0-897F-EA44F84A6A52}.Release R21|Any CPU.ActiveCfg = Release R21|Any CPU
79+
{DD53351A-AD4D-48A0-897F-EA44F84A6A52}.Release R21|Any CPU.Build.0 = Release R21|Any CPU
7580
{DD53351A-AD4D-48A0-897F-EA44F84A6A52}.Release R22|Any CPU.ActiveCfg = Release R22|Any CPU
7681
{DD53351A-AD4D-48A0-897F-EA44F84A6A52}.Release R22|Any CPU.Build.0 = Release R22|Any CPU
7782
{DD53351A-AD4D-48A0-897F-EA44F84A6A52}.Release R23|Any CPU.ActiveCfg = Release R23|Any CPU
@@ -82,33 +87,60 @@ Global
8287
{DD53351A-AD4D-48A0-897F-EA44F84A6A52}.Release R25|Any CPU.Build.0 = Release R25|Any CPU
8388
{DD53351A-AD4D-48A0-897F-EA44F84A6A52}.Release R26|Any CPU.ActiveCfg = Release R26|Any CPU
8489
{DD53351A-AD4D-48A0-897F-EA44F84A6A52}.Release R26|Any CPU.Build.0 = Release R26|Any CPU
85-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Debug R21|Any CPU.ActiveCfg = Debug R21|Any CPU
86-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Debug R21|Any CPU.Build.0 = Debug R21|Any CPU
87-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Debug R22|Any CPU.ActiveCfg = Debug R22|Any CPU
88-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Debug R22|Any CPU.Build.0 = Debug R22|Any CPU
89-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Debug R23|Any CPU.ActiveCfg = Debug R23|Any CPU
90-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Debug R23|Any CPU.Build.0 = Debug R23|Any CPU
91-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Debug R24|Any CPU.ActiveCfg = Debug R24|Any CPU
92-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Debug R24|Any CPU.Build.0 = Debug R24|Any CPU
93-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Debug R25|Any CPU.ActiveCfg = Debug R25|Any CPU
94-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Debug R25|Any CPU.Build.0 = Debug R25|Any CPU
95-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Debug R26|Any CPU.ActiveCfg = Debug R26|Any CPU
96-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Debug R26|Any CPU.Build.0 = Debug R26|Any CPU
97-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Release R21|Any CPU.ActiveCfg = Release R21|Any CPU
98-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Release R21|Any CPU.Build.0 = Release R21|Any CPU
99-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Release R22|Any CPU.ActiveCfg = Release R22|Any CPU
100-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Release R22|Any CPU.Build.0 = Release R22|Any CPU
101-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Release R23|Any CPU.ActiveCfg = Release R23|Any CPU
102-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Release R23|Any CPU.Build.0 = Release R23|Any CPU
103-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Release R24|Any CPU.ActiveCfg = Release R24|Any CPU
104-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Release R24|Any CPU.Build.0 = Release R24|Any CPU
105-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Release R25|Any CPU.ActiveCfg = Release R25|Any CPU
106-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Release R25|Any CPU.Build.0 = Release R25|Any CPU
107-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Release R26|Any CPU.ActiveCfg = Release R26|Any CPU
108-
{C85B17F0-D83A-4D64-8C02-EED3304CEC76}.Release R26|Any CPU.Build.0 = Release R26|Any CPU
90+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Debug R21|Any CPU.ActiveCfg = Debug|Any CPU
91+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Debug R21|Any CPU.Build.0 = Debug|Any CPU
92+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Debug R22|Any CPU.ActiveCfg = Debug|Any CPU
93+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Debug R22|Any CPU.Build.0 = Debug|Any CPU
94+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Debug R23|Any CPU.ActiveCfg = Debug|Any CPU
95+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Debug R23|Any CPU.Build.0 = Debug|Any CPU
96+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Debug R24|Any CPU.ActiveCfg = Debug|Any CPU
97+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Debug R24|Any CPU.Build.0 = Debug|Any CPU
98+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Debug R25|Any CPU.ActiveCfg = Debug|Any CPU
99+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Debug R25|Any CPU.Build.0 = Debug|Any CPU
100+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Debug R26|Any CPU.ActiveCfg = Debug|Any CPU
101+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Debug R26|Any CPU.Build.0 = Debug|Any CPU
102+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Release R21|Any CPU.ActiveCfg = Debug|Any CPU
103+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Release R21|Any CPU.Build.0 = Debug|Any CPU
104+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Release R22|Any CPU.ActiveCfg = Debug|Any CPU
105+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Release R22|Any CPU.Build.0 = Debug|Any CPU
106+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Release R23|Any CPU.ActiveCfg = Debug|Any CPU
107+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Release R23|Any CPU.Build.0 = Debug|Any CPU
108+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Release R24|Any CPU.ActiveCfg = Debug|Any CPU
109+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Release R24|Any CPU.Build.0 = Debug|Any CPU
110+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Release R25|Any CPU.ActiveCfg = Debug|Any CPU
111+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Release R25|Any CPU.Build.0 = Debug|Any CPU
112+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Release R26|Any CPU.ActiveCfg = Debug|Any CPU
113+
{3E1265E1-C356-4D79-AE90-B9968A9F1AA3}.Release R26|Any CPU.Build.0 = Debug|Any CPU
114+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Debug R21|Any CPU.ActiveCfg = Debug|Any CPU
115+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Debug R21|Any CPU.Build.0 = Debug|Any CPU
116+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Debug R22|Any CPU.ActiveCfg = Debug|Any CPU
117+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Debug R22|Any CPU.Build.0 = Debug|Any CPU
118+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Debug R23|Any CPU.ActiveCfg = Debug|Any CPU
119+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Debug R23|Any CPU.Build.0 = Debug|Any CPU
120+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Debug R24|Any CPU.ActiveCfg = Debug|Any CPU
121+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Debug R24|Any CPU.Build.0 = Debug|Any CPU
122+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Debug R25|Any CPU.ActiveCfg = Debug|Any CPU
123+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Debug R25|Any CPU.Build.0 = Debug|Any CPU
124+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Debug R26|Any CPU.ActiveCfg = Debug|Any CPU
125+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Debug R26|Any CPU.Build.0 = Debug|Any CPU
126+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Release R21|Any CPU.ActiveCfg = Debug|Any CPU
127+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Release R21|Any CPU.Build.0 = Debug|Any CPU
128+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Release R22|Any CPU.ActiveCfg = Debug|Any CPU
129+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Release R22|Any CPU.Build.0 = Debug|Any CPU
130+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Release R23|Any CPU.ActiveCfg = Debug|Any CPU
131+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Release R23|Any CPU.Build.0 = Debug|Any CPU
132+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Release R24|Any CPU.ActiveCfg = Debug|Any CPU
133+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Release R24|Any CPU.Build.0 = Debug|Any CPU
134+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Release R25|Any CPU.ActiveCfg = Debug|Any CPU
135+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Release R25|Any CPU.Build.0 = Debug|Any CPU
136+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Release R26|Any CPU.ActiveCfg = Debug|Any CPU
137+
{E35BBAD4-F1A2-473C-B765-3CCE6072CB0E}.Release R26|Any CPU.Build.0 = Debug|Any CPU
138+
EndGlobalSection
139+
GlobalSection(SolutionProperties) = preSolution
140+
HideSolutionNode = FALSE
141+
EndGlobalSection
142+
GlobalSection(NestedProjects) = preSolution
143+
{7895EAFA-9A58-42C5-A1D5-2D38B54357FA} = {91D068A4-CC13-4DF2-881B-FF41E8D32A71}
144+
{6888FA85-42D0-408B-BF96-F8CEE3368133} = {91D068A4-CC13-4DF2-881B-FF41E8D32A71}
109145
EndGlobalSection
110-
GlobalSection(NestedProjects) = preSolution
111-
{7895EAFA-9A58-42C5-A1D5-2D38B54357FA} = {91D068A4-CC13-4DF2-881B-FF41E8D32A71}
112-
{6888FA85-42D0-408B-BF96-F8CEE3368133} = {91D068A4-CC13-4DF2-881B-FF41E8D32A71}
113-
EndGlobalSection
114146
EndGlobal

source/RevitDevTool.DirectContext3D/RevitDevTool.DirectContext3D.csproj

Lines changed: 0 additions & 47 deletions
This file was deleted.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// This Source Code Form is subject to the terms of the MIT License.
2+
// If a copy of the MIT was not distributed with this file, You can obtain one at https://opensource.org/licenses/MIT.
3+
// Copyright (C) Leszek Pomianowski and WPF UI Contributors.
4+
// All Rights Reserved.
5+
6+
namespace Wpf.Ui.Abstractions.Controls;
7+
8+
/// <summary>
9+
/// A component whose ViewModel is separate from the DataContext and can be navigated by INavigationView.
10+
/// </summary>
11+
/// <typeparam name="T">The type of the ViewModel associated with the view. This type optionally may implement <see cref="INavigationAware"/> to participate in navigation processes.</typeparam>
12+
public interface INavigableView<out T>
13+
{
14+
/// <summary>
15+
/// Gets the view model used by the view.
16+
/// Optionally, it may implement <see cref="INavigationAware"/> and be navigated by INavigationView.
17+
/// </summary>
18+
T ViewModel { get; }
19+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// This Source Code Form is subject to the terms of the MIT License.
2+
// If a copy of the MIT was not distributed with this file, You can obtain one at https://opensource.org/licenses/MIT.
3+
// Copyright (C) Leszek Pomianowski and WPF UI Contributors.
4+
// All Rights Reserved.
5+
6+
namespace Wpf.Ui.Abstractions.Controls;
7+
8+
/// <summary>
9+
/// Notifies class about being navigated.
10+
/// </summary>
11+
public interface INavigationAware
12+
{
13+
/// <summary>
14+
/// Asynchronously handles the event that is fired after the component is navigated to.
15+
/// </summary>
16+
/// <returns>A task that represents the asynchronous operation.</returns>
17+
Task OnNavigatedToAsync();
18+
19+
/// <summary>
20+
/// Asynchronously handles the event that is fired before the component is navigated from.
21+
/// </summary>
22+
/// <returns>A task that represents the asynchronous operation.</returns>
23+
Task OnNavigatedFromAsync();
24+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// This Source Code Form is subject to the terms of the MIT License.
2+
// If a copy of the MIT was not distributed with this file, You can obtain one at https://opensource.org/licenses/MIT.
3+
// Copyright (C) Leszek Pomianowski and WPF UI Contributors.
4+
// All Rights Reserved.
5+
6+
namespace Wpf.Ui.Abstractions.Controls;
7+
8+
/// <summary>
9+
/// Provides a base class for navigation-aware components.
10+
/// </summary>
11+
public abstract class NavigationAware : INavigationAware
12+
{
13+
/// <inheritdoc />
14+
public virtual Task OnNavigatedToAsync()
15+
{
16+
OnNavigatedTo();
17+
18+
return Task.CompletedTask;
19+
}
20+
21+
/// <summary>
22+
/// Handles the event that is fired after the component is navigated to.
23+
/// </summary>
24+
// ReSharper disable once MemberCanBeProtected.Global
25+
public virtual void OnNavigatedTo()
26+
{
27+
}
28+
29+
/// <inheritdoc />
30+
public virtual Task OnNavigatedFromAsync()
31+
{
32+
OnNavigatedFrom();
33+
34+
return Task.CompletedTask;
35+
}
36+
37+
/// <summary>
38+
/// Handles the event that is fired before the component is navigated from.
39+
/// </summary>
40+
// ReSharper disable once MemberCanBeProtected.Global
41+
public virtual void OnNavigatedFrom()
42+
{
43+
}
44+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// This Source Code Form is subject to the terms of the MIT License.
2+
// If a copy of the MIT was not distributed with this file, You can obtain one at https://opensource.org/licenses/MIT.
3+
// Copyright (C) Leszek Pomianowski and WPF UI Contributors.
4+
// All Rights Reserved.
5+
6+
global using System;
7+
global using System.Threading.Tasks;
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// This Source Code Form is subject to the terms of the MIT License.
2+
// If a copy of the MIT was not distributed with this file, You can obtain one at https://opensource.org/licenses/MIT.
3+
// Copyright (C) Leszek Pomianowski and WPF UI Contributors.
4+
// All Rights Reserved.
5+
6+
namespace Wpf.Ui.Abstractions;
7+
8+
/// <summary>
9+
/// Defines a service that provides pages for navigation.
10+
/// </summary>
11+
public interface INavigationViewPageProvider
12+
{
13+
/// <summary>
14+
/// Retrieves a page of the specified type.
15+
/// </summary>
16+
/// <param name="pageType">The type of the page to retrieve.</param>
17+
/// <returns>An instance of the specified page type, or null if the page is not found.</returns>
18+
public object? GetPage(Type pageType);
19+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// This Source Code Form is subject to the terms of the MIT License.
2+
// If a copy of the MIT was not distributed with this file, You can obtain one at https://opensource.org/licenses/MIT.
3+
// Copyright (C) Leszek Pomianowski and WPF UI Contributors.
4+
// All Rights Reserved.
5+
6+
namespace Wpf.Ui.Abstractions;
7+
8+
/// <summary>
9+
/// Represents errors that occur during navigation.
10+
/// </summary>
11+
public sealed class NavigationException : Exception
12+
{
13+
/// <summary>
14+
/// Initializes a new instance of the <see cref="NavigationException"/> class with a specified error message.
15+
/// </summary>
16+
/// <param name="message">The message that describes the error.</param>
17+
public NavigationException(string message)
18+
: base(message)
19+
{
20+
}
21+
22+
/// <summary>
23+
/// Initializes a new instance of the <see cref="NavigationException"/> class with a specified error message
24+
/// and a reference to the inner exception that is the cause of this exception.
25+
/// </summary>
26+
/// <param name="e">The exception that is the cause of the current exception.</param>
27+
/// <param name="message">The message that describes the error.</param>
28+
public NavigationException(Exception e, string message)
29+
: base(message, e)
30+
{
31+
}
32+
}

0 commit comments

Comments
 (0)