1

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

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

private readonly ILogMessageService Service;

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

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

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

4

1 回答 1

0

您将需要使用 MVVM 并创建一个在 Public 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
{
...
}
于 2020-03-31T12:44:15.450 回答