-
Notifications
You must be signed in to change notification settings - Fork 469
Description
Is your feature request related to a problem? Please describe.
No response
Describe the solution you'd like
The generated ConfigureServices()
in App.xaml.cs
can be misleading, since it registers pages as services. When NavigationService.NavigateTo()
is called, a type is passed to _frame.Navigate()
instead of an instance. As I have seen WinUI’s API does not support passing instance to the Frame.Navigate()
method. (it also makes parametrized constructors prohibited)
I found a solution to enable Frame.Navigate()
to instantiate a page via an IServiceProvider
interface. When Frame.Navigate()
is called, it retrieves an IXamlType
from the App
, IXamlType.ActivateInstance()
method is responsible for creating the instance from a type. The ActivateInstance()
method can be redirected, and I created a sample app that shows how this redirection is implemented.
I think it would be great that the App.DI.cs
could be included in the TemplateStudio’s source generator.
Describe alternatives you've considered
No response
Additional context
Here is my example app.
Applies to the following platforms:
- WinUI
- WPF
- UWP