MahApps IDialogCoordinator 任务被取消

问题描述 投票:0回答:0

我有一个带有 MS MVVM 工具包和 MahApps 的 C# WPF 应用程序。第一次打开窗口时,

ShowProgressAsync
按预期工作,这意味着 xaml 端的绑定也可以正常工作。但是,当我第二次尝试打开窗口时,它抛出任务被取消。如何解决这个问题?

IDialogCoordinator 是这样注册的

var col = new ServiceCollection();
col.AddSingleton<IDialogCoordinator, DialogCoordinator>();
col.AddSingleton<MyViewModel>(x =>
                new MyViewModel(
                    x.GetRequiredService<IDialogCoordinator>()
                ));
Ioc.Default.ConfigureServices(col.BuildServiceProvider());

在 ViewModel 中

public class MyViewModel
{
    private readonly IDialogCoordinator _dialogCoordinator;

    public MyViewModel(IDialogCoordinator dialogCoordinator)
    {
        _dialogCoordinator = dialogCoordinator;
    }

    public async Task ShowMessageDialog()
    {
        // on Second time this throw task cancelled
        var controller = await _dialogCoordinator.ShowProgressAsync(this, "Title", "Message");

        // Do some stuff

        await controller.CloseAsync()
    }
}
c# mvvm mahapps.metro
© www.soinside.com 2019 - 2024. All rights reserved.