Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net核心WPF依赖项注入_Wpf_.net Core_Dependency Injection_Wpf Core - Fatal编程技术网

.net核心WPF依赖项注入

.net核心WPF依赖项注入,wpf,.net-core,dependency-injection,wpf-core,Wpf,.net Core,Dependency Injection,Wpf Core,我是WPF新手,我已经创建了一个简单的WPF应用程序,它有一个按钮,点击该按钮将从数据库中获取数据,并在文本框中给出输出 我在依赖项注入中遇到了一个问题,数据库中有AppDBContext类,logMessageService.cs具有从数据库获取数据的功能 private readonly ILogMessageService Service; public MainWindow(ILogMessageService service) { Initialize

我是WPF新手,我已经创建了一个简单的WPF应用程序,它有一个按钮,点击该按钮将从数据库中获取数据,并在文本框中给出输出

我在依赖项注入中遇到了一个问题,数据库中有AppDBContext类,logMessageService.cs具有从数据库获取数据的功能

private readonly ILogMessageService Service;

    public MainWindow(ILogMessageService service)
    {
        InitializeComponent();
        this.Service = service;
    }
我收到一个错误“在“MainWindow”类型上找不到匹配的构造函数”


如何在WPF中执行依赖项注入?

您需要使用MVVM并创建一个在公共MainWindow()构造函数中创建的MainWindowViewModel。然后,ViewModel可以初始化服务本身,或者主窗口构造函数可以初始化服务并将其作为构造函数的一部分传递给新的视图模型

Public MainWindow()
{
    InitialiseComponent();
    DataContext = new MainWindowViewModel(service);
}


您需要使用MVVM并创建一个在公共MainWindow()构造函数中创建的MainWindowViewModel。然后,ViewModel可以初始化服务本身,或者主窗口构造函数可以初始化服务并将其作为构造函数的一部分传递给新的视图模型

Public MainWindow()
{
    InitialiseComponent();
    DataContext = new MainWindowViewModel(service);
}


谢谢你的解释。谢谢你的解释。嗨。你的解决方案是什么?我正在Microsoft.Extensions.DependencyInjection中使用MS DI,希望DI处理服务创建,而不是从每个views constructor.Hi中的服务中提取服务。你的解决方案是什么?我正在Microsoft.Extensions.DependencyInjection中使用MS DI,希望DI处理服务创建,而不是从每个视图构造函数中的服务中提取服务。
Public Class MainWindowViewModel
{
...
}