Как отобразить окно как диалог?

135
07 августа 2021, 13:00

У меня есть подготовленное окно для показа диалога, но как дошло дело до его показа, я не понимаю как отобразить это окно как диалог.

В Prism есть сервис IDialogService, но я не понимаю как им воспользоваться, т.к. при попытке отобразить окно, мне выдает исключение:

Exception occurred while:

on constructor: DialogWindow() •resolving type: 'IDialogWindow' mapped to 'DialogWindow' "

InvalidOperationException: Вызывающим потоком должен быть STA, поскольку этого требуют большинство компонентов UI.

Такое исключение бросается если использовать асинхронную команду, а если использовать синхронную то:

"A dialog's content must be a FrameworkElement"

Как я пытаюсь показать диалог:

public class ShortUserProfileViewModel : BindableBase
{
    private readonly IDialogService _dialogService;
    private DelegateCommand _loginCommand;
    public ShortUserProfileViewModel(IDleHttpClient httpClient, IDialogService dialogService)
    {
        _dialogService = dialogService;
        HttpClient = httpClient;
        LoginCommand = new DelegateCommand(() =>
        {
            _dialogService.ShowDialog("UserAuthWindow", new DialogParameters(), result =>
            {
            });
        });
    }
    public IDleHttpClient HttpClient { get; }
    public DelegateCommand LoginCommand
    {
        get => _loginCommand;
        set => SetProperty(ref _loginCommand, value);
    }
}

Как отобразить окно как диалог с помощью Prism?

READ ALSO
Как синхронизировать работу потока и основной программы, чтобы они не мешали друг другу?

Как синхронизировать работу потока и основной программы, чтобы они не мешали друг другу?

После нажатия кнопки поток отключает доступ к программе, я не могу даже выйти из программыЧто мне делать

141
Классы и дефолтная инициализация

Классы и дефолтная инициализация

В C# в структурах запрещено использовать конструктор без параметров, так как он используется для инициализации членов структуры (обнуления...

419
netcore 2.2 подключить стороннюю библиотеку на NetFramework 4.5.2

netcore 2.2 подключить стороннюю библиотеку на NetFramework 4.5.2

Для проекта на netcore 22 понадобилось использовать библиотеку скомпилированную под X86 NetFramework 4

152
Woocommerce Storefront. Добавить несколько цен в товар

Woocommerce Storefront. Добавить несколько цен в товар

В товаре предусмотрено 3 цены, в зависимости от размераВозле каждой цены кнопка "в корзину"

98