使用uiVisualizerservice.Show获取DialogResult

时间:2015-07-17 14:45:59

标签: c# wpf catel

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

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

我已经看到启用了调试异常,引发了以下异常&#34;只有在创建Window并显示为对话框后才能设置DialogResult。&#34; < / p>

以下是我的代码片段

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

感谢您的建议。

1 个答案:

答案 0 :(得分:3)

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

  1. 订阅视图模型的已取消或已保存事件以检查其是已保存还是已取消
  2. 创建一个注入到保存状态的vm的模型