.net核心WPF依赖项注入



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

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

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

我收到一个错误"在类型"MainWindow"上找不到匹配的构造函数">

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

您需要使用MVVM并创建一个MainWindowViewModel,该模型是在Public MainWindow((构造函数中创建的。然后,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
{
...
}

最新更新