通过单击按钮

时间:2018-04-22 19:50:01

标签: c# wpf mvvm caliburn.micro

我有两个视图(窗口)及其关联的ViewModel。第一个是ShellView,第二个是CreatePersonView。我想要的是当我点击ShellView中的按钮时,它会在新窗口中打开CreatePersonView。当这个窗口关闭时,父窗口应该执行一些任务。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用EventAggregator和Window Manager

来实现此目的

第1步: 单击按钮时调用CreatePerson窗口。

public void PersonClick() => _windowManager.ShowDialog(_createPersonVM);

应该在ShellViewModel的构造函数中导入WindowManager。

步骤2:关闭CreatePersonView时,在Shell中继续执行任务。您需要使用事件聚合器。

 public void CloseEvent() => _eventAggregator.PublishOnUIThread(new CloseMsg() {Message = "Hey closed"});

ShellViewModel需要订阅CloseMsg(IHandle)的eventaggregator。

这将帮助您实现目标。

如果您需要进一步澄清,请与我们联系。可以分享完整的代码。

相关问题