我是WPF的新手,我创建了一个带有按钮的简单WPF应用程序,单击该按钮将从数据库中获取数据并在文本框中提供输出。
我在依赖注入中遇到问题,有用于数据库的AppDBContext类,以及具有从DB提取数据的功能的logMessageService.cs。
private readonly ILogMessageService Service;
public MainWindow(ILogMessageService service)
{
InitializeComponent();
this.Service = service;
}
给我一个错误“在'MainWindow'类型上找不到匹配的构造函数”
如何在WPF中执行依赖项注入?
答案 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
{
...
}