Окно входа в WPF Prism - PullRequest
       9

Окно входа в WPF Prism

0 голосов
/ 29 октября 2018

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

Вот мой начальный код:

LoginViewModel.cs

public event EventHandler LoginCompleted;
    private void RaiseLoginCompletedEvent()
    {
        LoginCompleted?.Invoke(this, EventArgs.Empty);
    }

Bootstraper.cs из оболочки

enter image description here

Моя проблема в том, что я не могу создать экземпляр моей LoginModel, так как в конструкторе моей Модели есть параметр для использования моего интерфейса служб.

enter image description here

Есть ли какое-то решение для этого? Спасибо!

Ответы [ 2 ]

0 голосов
/ 28 апреля 2019

Другой способ сделать это:

ILoginAuth auth = CommonServiceLocator.ServiceLocator.Current.GetInstance<ILoginAuth>();

Таким образом, вам не нужно включать ILoginAuth в ваш конструктор. Кроме того, вы можете сделать это из любого места!

0 голосов
/ 29 октября 2018

Создайте экземпляр класса, который самостоятельно реализует интерфейс ILoginAuth:

var loginVM = new LoginViewModel(new LoginAuth());

... или пусть контейнер сделает это за вас:

var loginVM = new LoginViewModel(Container.Resolve<ILoginAuth>());

Чтобы последний вариант работал, необходимо зарегистрировать сопоставления типов, переопределив метод RegisterTypes:

protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
    containerRegistry.Register<ILoginAuth, LoginAuth>();
}
...