. net core WPF Внедрение зависимостей - PullRequest
0 голосов
/ 31 марта 2020

Я новичок в WPF, я создал простое приложение WPF, в котором есть кнопка, которая при нажатии будет извлекать данные из базы данных и выводить вывод в текстовом поле.

У меня есть проблема в Dependency Injection, есть класс AppDBContext для базы данных и logMessageService.cs, который имеет функцию для извлечения данных из БД.

private readonly ILogMessageService Service;

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

Мне выдали ошибку " Не найдено подходящего конструктора для типа 'MainWindow' "

Как выполнить внедрение зависимостей в WPF?

1 Ответ

0 голосов
/ 31 марта 2020

Вы захотите использовать MVVM и создать MainWindowViewModel, который вы создадите в конструкторе Publi c 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
{
...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...