使用uiVisualizerservice.Show获取对话结果

本文关键字:对话 结果 获取 Show uiVisualizerservice 使用 | 更新日期: 2023-09-27 18:03:25

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

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

我已经看到启用了调试异常,抛出以下异常"只有在创建窗口并显示为对话框后才能设置对话框。"

这是我的代码片段

 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按钮?

谢谢你的建议。

使用uiVisualizerservice.Show获取对话结果

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

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