This commit is contained in:
Dan Clark
2025-02-11 17:59:16 +00:00
parent 95dd84d323
commit 66d61a3917
7 changed files with 9 additions and 18 deletions
+3 -3
View File
@@ -38,7 +38,7 @@ public class DefaultHostBuilder :
services.AddTransient<IContentFactory, ContentFactory>();
services.AddScoped<INavigationRegionCollection, NavigationRegionCollection>();
services.AddSingleton<INavigationRegionCollection, NavigationRegionCollection>();
services.AddTransient<INavigationRegionProvider, NavigationRegionProvider>();
services.AddScoped<INavigation, Navigation>();
@@ -52,8 +52,8 @@ public class DefaultHostBuilder :
services.AddTransient<IComponentFactory, ComponentFactory>();
services.AddTransient<IComponentScopeProvider, ComponentScopeProvider>();
services.AddHandler<NavigateEventArgs, NavigateHandler>();
services.AddHandler<NavigateBackEventArgs, NavigateBackHandler>();
services.AddHandlerScoped<NavigateEventArgs, NavigateHandler>();
services.AddHandlerScoped<NavigateBackEventArgs, NavigateBackHandler>();
services.AddInitialization<ComponentInitializer>();
});
+2 -2
View File
@@ -2,7 +2,7 @@
namespace Toolkit.Foundation;
public class NavigateHandler(NamedComponent scope,
public class NavigateHandler(NamedComponent named,
IComponentScopeProvider componentScopeProvider) :
IHandler<NavigateEventArgs>
{
@@ -28,7 +28,7 @@ public class NavigateHandler(NamedComponent scope,
if (navigation is null)
{
ComponentScopeDescriptor? descriptor = componentScopeProvider.Get(args.Scope ?? scope.Key);
ComponentScopeDescriptor? descriptor = componentScopeProvider.Get(args.Scope ?? named.Key);
navigation = descriptor?.Services?.GetRequiredService<INavigation>();
}
+1 -1
View File
@@ -28,7 +28,7 @@ public class Navigation(IServiceProvider provider,
{
currentSegmentIndex++;
if (provider.GetKeyedService<IContentTemplateDescriptor>(segment)
if (provider.GetRequiredKeyedService<IContentTemplateDescriptor>(segment)
is IContentTemplateDescriptor descriptor)
{
Dictionary<string, object>? arguments = parameters?.ToDictionary(x => x.Key, x => x.Value, StringComparer.InvariantCultureIgnoreCase) ?? [];
-5
View File
@@ -1,5 +0,0 @@
using System;
namespace Toolkit.UI.WinUI;
public class ItemInvokedEventArgs : EventArgs;
+1 -1
View File
@@ -75,7 +75,7 @@ public class NavigateAction :
ImmutableDictionary<string, object>.Empty;
observableViewModel.Messenger.Send(new NavigateEventArgs(Route, Region.Equals(this) ? content : Region, Scope ?? null,
content, Navigated, parameters));
content.DataContext, Navigated, parameters));
}
}
-4
View File
@@ -10,14 +10,10 @@ public class ContentControlHandler :
public void Handle(NavigateTemplateEventArgs args)
{
if (args.Region is not ContentControl contentControl)
{
return;
}
if (args.Template is not Control control)
{
return;
}
void HandleLoaded(object? sender, RoutedEventArgs args)
{
@@ -16,8 +16,8 @@ public static class IServiceCollectionExtensions
services.AddTransient<IContentTemplate, ContentTemplate>();
services.AddTransient<INavigationRegion, NavigationRegion>();
services.AddHandler<NavigateTemplateEventArgs, ContentControlHandler>(nameof(ContentControl));
services.AddHandler<NavigateTemplateEventArgs, ContentDialogHandler>(nameof(ContentDialog));
services.AddHandlerScoped<NavigateTemplateEventArgs, ContentControlHandler>(nameof(ContentControl));
services.AddHandlerScoped<NavigateTemplateEventArgs, ContentDialogHandler>(nameof(ContentDialog));
services.AddTransient((Func<IServiceProvider, IProxyServiceCollection<IComponentBuilder>>)(provider =>
new ProxyServiceCollection<IComponentBuilder>(services =>