【问题标题】:Caliburn Micro Multi-page Application with Main View带有主视图的 Caliburn Micro 多页应用程序
【发布时间】:2019-12-05 12:38:18
【问题描述】:

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

所以主窗口(“ShellView”)将被分割为 3 部分,侧边栏、标题栏/上下文菜单和页面控制器,看起来像这样 Application frame

所以侧边栏和标题对于显示的所有内容都是静态的,但主页会根据正在使用的系统而变化,例如,如果用户单击时间,它将打开 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");
}

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

【问题讨论】:

  • 你是说点击按钮时OpenDashboard()没有被执行?
  • 是的,当按钮被点击时没有任何反应。
  • 你在方法中放了断点吗?
  • 考虑到当前的实现,你希望它做什么......?
  • 没有附加控制台。如果您将代码更改为 System.Diagnostics.Debug.WriteLine("..."),您应该会看到消息打印到 Visual Studio 的输出窗口中。

标签: c# wpf mvvm caliburn.micro


【解决方案1】:

在 WPF 应用程序中没有可写入的控制台,但如果您将代码更改为 System.Diagnostics.Debug.WriteLine("Test"),当您单击 Button 时,您应该会在 Visual Studio 中看到“测试”打印到 output window

【讨论】:

    猜你喜欢
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多