Caliburn.Micro:从主窗口打开新窗口,然后将其连接到视图模型

Nav*_*sor 2 wpf mvvm caliburn caliburn.micro

我有 Caliburn.Micro 的问题:我有 ShellView.xaml 和 ShellViewModel.cs,我想从 ShellViewModel 打开新的对话窗口“NewDialogView.xaml”。

 <StackPanel>
     <Button x:Name="Click"
             Content="Click"
             />
 </StackPanel>

 internal class ShellViewModel
 {
     public void Click()
     {
         Window newDialogView = new NewDialogView();
         newDialogView.Show();
     }
 }
Run Code Online (Sandbox Code Playgroud)

然后当用户在那个新窗口中时,他/她可以点击按钮并收到一些消息:

 <StackPanel>
     <Button x:Name="ShowMessage"
             Content="Click"
             />
 </StackPanel>

 internal class NewDialogViewModel
 {
     public void ShowMessage()
     {
         MessageBox.Show("Hello!");
     }
 }
Run Code Online (Sandbox Code Playgroud)

问题是当用户单击 NewDialogView.xaml 中的按钮时,什么也没有发生。没有内容为“你好”的消息框。请帮忙!

Int*_*Hen 7

只是想分享关于如何打开新窗口的最简单的方法:

IWindowManager manager = new WindowManager();

public void Button()
{
    manager.ShowWindow(new MyViewModel(), null, null);
}
Run Code Online (Sandbox Code Playgroud)

以及如何关闭它...