.net核心WPF依赖项注入

时间:2020-03-31 12:31:51

标签: wpf .net-core dependency-injection wpf-core

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

我在依赖注入中遇到问题,有用于数据库的AppDBContext类,以及具有从DB提取数据的功能的logMessageService.cs。

private readonly ILogMessageService Service;

    public MainWindow(ILogMessageService service)
    {
        InitializeComponent();
        this.Service = service;
    }

给我一​​个错误“在'MainWindow'类型上找不到匹配的构造函数”

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

1 个答案:

答案 0 :(得分:0)

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

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

<Window x:Class="MainWindow"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:local="clr-namespace:MyNameSpace">
<Window.DataContext>
    <local:MainWindowViewModel/>
</Window.DataContext>

...
</Window>

Public Class MainWindowViewModel
{
...
}