【发布时间】:2021-04-23 20:26:11
【问题描述】:
我正在使用 MVVM 模式开发 WPF .Net Core 5 应用程序,并且我正在尝试使用依赖注入来学习新的东西。
我刚刚修改了 App.xaml.cs 类,如下所示,初始登录后,我可以按预期访问 MainWindow:
public partial class App : Application
{
private readonly ServiceProvider _serviceProvider;
public App()
{
ServiceCollection services = new ServiceCollection();
ConfigureServices(services);
_serviceProvider = services.BuildServiceProvider();
}
private void ConfigureServices(ServiceCollection services)
{
services.AddTransient<frmSQLConnection>();
services.AddTransient<frmLogin>();
services.AddSingleton<MainWindow>();
}
protected override void OnStartup(StartupEventArgs e)
{
if ((SuccessfullyConnected || _serviceProvider.GetService<frmSQLConnection>().ShowDialog() == true) && _serviceProvider.GetService<frmLogin>().ShowDialog() == true)
{
_serviceProvider.GetService<MainWindow>().Show();
}
else
{
Shutdown();
}
}
}
我现在开始怀疑了,因为 MainWindow.xaml 将由顶部的 RibbonMenu 和下方的 TabControl 组成,如下例所示: enter image description here
我的问题是什么是 UserControls 的依赖注入的良好实现? 我读过一些关于复合应用程序的文章,但它似乎对嵌套的用户控件比我的情况更有用。
有什么建议吗?
提前感谢有空
【问题讨论】:
标签: c# wpf mvvm dependency-injection