我正在将模式对话框移植到非模式对话框。

我的问题是:uiCompletedEventArgs.Result为空。

我已经看到启用了调试异常,将引发以下异常“仅在创建Window并将其显示为对话框之后才能设置DialogResult”。

这是我的代码片段

 var viewmodel = viewModelFactory.CreateViewModel<GenericViewModel>(someIds);

       uiVisualizerService.Show(viewmodel, CompletedProc);
    }

    private async void CompletedProc(object sender, UICompletedEventArgs uiCompletedEventArgs)
    {
        if (uiCompletedEventArgs.Result.HasValue && uiCompletedEventArgs.Result.Value) //here's null
        { ... }


如何知道用户单击了Yes还是Cancel按钮?

谢谢你的建议。

最佳答案

不幸的是,调用window.Show时无法设置DialogResult(WPF限制,仅在使用window.ShowDialog时才可能)。因此,您需要执行以下操作之一:


订阅视图模型的已取消或已保存事件,以检查它是否已保存或已取消
创建一个您注入到保持状态的vm中的模型

关于c# - 使用uiVisualizerservice.Show获取DialogResult,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31478536/

10-11 13:28