Caliburn Micro Multi-page 具有主视图的应用程序

Caliburn Micro Multi-page Application with Main View

我正在从 WinForms 转移到使用 MVVM 的 WPF(特别是 Caliburn.Micro),但我在掌握我将使用它的目的的整个概念时遇到了一个小问题。

所以 Main window("ShellView") 将被分成 3 个部分,侧边栏,header bar/context 菜单和页面控制器,看起来像这个 Application frame

因此边栏和 header 对于显示的所有内容都是静态的,但主页会根据所使用的系统而变化,例如,如果用户单击时间,它将打开 NS.View.Time.HomeView,然后用户可以浏览时间系统。

但是,我似乎无法获得 Shellview sidebar/header 按钮来触发附加到它们的方法。我试过将按钮 x:Names 设置为像这样的方法名称

<!-- shell View.xaml -->
<Button x:Name = "OpenDashboard"
        Height="30" HorizontalContentAlignment="Left" 
        Background="Transparent" BorderThickness="0" 
        Width="{Binding ActualWidth, ElementName=ButtonsStackPanel}"
        Cursor="Hand">
</Button>


<!-- Shell View Model.cs -->
public void OpenDashboard()
{
    Console.WriteLine("Test");
}

我已经用 NotifyOfPropertyChange() 测试了按钮并设置了事物的名称,这很有效,但我就是无法让按钮打开不同的视图。

WPF 应用程序中没有可写入的控制台,但如果您将代码更改为 System.Diagnostics.Debug.WriteLine("Test"),您应该会看到 "Test" 被打印到 [=16] 中的 output window =] 当你点击 Button.