C# Caliburn.micro通过单击按钮打开窗口
我有两个视图(窗口)及其关联的视图模型。第一个是ShellView,第二个是CreatePersonView。我想要的是,当我在ShellView中单击一个按钮时,它会在一个新窗口中打开CreatePersonView。当此窗口关闭时,父级应该执行一些任务C# Caliburn.micro通过单击按钮打开窗口,c#,wpf,mvvm,caliburn.micro,C#,Wpf,Mvvm,Caliburn.micro,我有两个视图(窗口)及其关联的视图模型。第一个是ShellView,第二个是CreatePersonView。我想要的是,当我在ShellView中单击一个按钮时,它会在一个新窗口中打开CreatePersonView。当此窗口关闭时,父级应该执行一些任务 感谢您的帮助。您可以通过EventAggregator和窗口管理器实现这一点 步骤1: 单击按钮时调用CreatePerson窗口 public void PersonClick() => _windowManager.ShowDial
感谢您的帮助。您可以通过EventAggregator和窗口管理器实现这一点 步骤1: 单击按钮时调用CreatePerson窗口
public void PersonClick() => _windowManager.ShowDialog(_createPersonVM);
WindowManager应导入ShellViewModel的构造函数中
步骤2:当CreatePersonView关闭时,在Shell中继续任务。您需要为此使用事件聚合器
public void CloseEvent() => _eventAggregator.PublishOnUIThread(new CloseMsg() {Message = "Hey closed"});
ShellViewModel需要订阅CloseMsg(IHandle)的eventaggregator
这将帮助你实现你的目标
如果您需要进一步澄清,请告诉我。可以共享完整的代码。您能解释一下如何在构造函数中导入WindowManager吗?您好,您可以在构造函数中执行以下操作。[ImportingConstructor]公共ShellViewModel(IWindowManager windowManager){{u windowManager=windowManager;}@Anu Viswan:能否显示所给示例的完整代码?我面临着同样的问题,也不知道如何完成这个“钩子”。