使用 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
{ ... }
如何判断用户是否单击了 Yes
或 Cancel
按钮?
感谢您的建议。
不幸的是当你调用window.Show时你不能设置DialogResult(WPF限制,它只有在使用window.ShowDialog时才有可能)。因此,您需要执行以下操作之一:
- 订阅view model的Canceled或Saved事件,查看是保存还是取消
- 创建一个模型,将其注入到保存状态的虚拟机中
我正在将模态对话框移植到非模态对话框。
我的问题是: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
{ ... }
如何判断用户是否单击了 Yes
或 Cancel
按钮?
感谢您的建议。
不幸的是当你调用window.Show时你不能设置DialogResult(WPF限制,它只有在使用window.ShowDialog时才有可能)。因此,您需要执行以下操作之一:
- 订阅view model的Canceled或Saved事件,查看是保存还是取消
- 创建一个模型,将其注入到保存状态的虚拟机中