如何用Caliburn Micro从View中调用MainWindow的方法?

时间:2016-01-03 14:27:03

标签: wpf binding caliburn.micro mahapps.metro

我在MainWindow上定义了一些Flyout。我想从我的WPF应用程序视图中打开它们。

当我尝试绑定到我的命令时,我没有收到任何错误,但Flyout无法打开。当我直接在MainWindow中调用Method时,会打开Flyout。

MainWindow.xaml.cs上的方法

public ICommand openFlyoutHomeCommand { get; private set; }
    public void openFlyoutHome()
    {
        FlyoutHomePlayers.IsOpen = true;
    }

视图中的绑定,显示在MainWindow中:

<Button Grid.Row="0" Grid.Column="1" Margin="10 30 10 10" Content="Open Flyout" Command="{Binding openFlyoutHome}" CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"></Button>

1 个答案:

答案 0 :(得分:0)

首先,请查看输出控制台,看看是否有任何绑定警告。

然后,您应该为openFlyoutHomeCommand分配一个Command实例。此实例应引用调用方法openFlyoutHome的委托(或创建具有相同行为的匿名委托)。

在您的代码示例中,您的openFlyoutHomeCommand属性为null。