C# 具有主视图的Caliburn Micro多页应用程序

C# 具有主视图的Caliburn Micro多页应用程序,c#,wpf,mvvm,caliburn.micro,C#,Wpf,Mvvm,Caliburn.micro,我正在使用MVVM(特别是Caliburn.Micro)从WinForms过渡到WPF,但是我在掌握我将使用它的整个概念时遇到了一个小问题 因此,主窗口(“ShellView”)将分为三个部分:侧栏、标题栏/上下文菜单和页面控制器,如下所示 因此,显示的所有内容的侧边栏和标题都是静态的,但主页将根据使用的系统而更改,例如,如果用户单击“时间”,它将打开NS.View.time.HomeView,然后用户可以在时间系统中导航 但是,我似乎无法让Shellview边栏/标题按钮触发附加到它们的方法

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

因此,主窗口(“ShellView”)将分为三个部分:侧栏、标题栏/上下文菜单和页面控制器,如下所示

因此,显示的所有内容的侧边栏和标题都是静态的,但主页将根据使用的系统而更改,例如,如果用户单击“时间”,它将打开NS.View.time.HomeView,然后用户可以在时间系统中导航

但是,我似乎无法让Shellview边栏/标题按钮触发附加到它们的方法。我尝试过将按钮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");
}

public void OpenDashboard()
{
控制台写入线(“测试”);
}

我已经用
NotifyOfPropertyChange()
测试了按钮,并设置了一些东西的名称,这很有效,但我就是不能让按钮打开不同的视图。

在WPF应用程序中没有控制台可以写入,但是如果您将代码更改为
System.Diagnostics.Debug.WriteLine(“Test”)
,您应该会看到“Test”在Visual Studio中单击
按钮时打印到

是否表示单击按钮时未执行
OpenDashboard()
,单击按钮时,什么都不会发生。您是否在方法中放置了断点?在当前实现的情况下,您希望它做什么…?没有连接控制台。如果将代码更改为
System.Diagnostics.Debug.WriteLine(“…”)
,您应该会看到消息打印到Visual Studio中的输出窗口。