使用 uiVisualizerservice.Show 获取 DialogResult

Getting DialogResult using uiVisualizerservice.Show

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

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

我看到启用调试异常会引发以下异常 "DialogResult can be set only after Window is created and shown as dialog."

这是我的代码片段

 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
        { ... }

如何判断用户是否单击了 YesCancel 按钮?

感谢您的建议。

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

  1. 订阅view model的Canceled或Saved事件,查看是保存还是取消
  2. 创建一个模型,将其注入到保存状态的虚拟机中