Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 无法解析命令绑定_.net_Wpf_Xaml - Fatal编程技术网

.net 无法解析命令绑定

.net 无法解析命令绑定,.net,wpf,xaml,.net,Wpf,Xaml,我第一次探索WPF和XAML,还有很多东西我还不明白 我正在解决这个问题: 我已经创建了自己的项目,并试图添加来自AvalonDockMVVM的代码 目前,我正在尝试构建菜单 在MainWindow.xaml中,我添加了: <Window.Resources> <RoutedUICommand x:Key="Commands.Exit" /> </Window.Resources> <Window.CommandBindings>

我第一次探索WPF和XAML,还有很多东西我还不明白

我正在解决这个问题:

我已经创建了自己的项目,并试图添加来自AvalonDockMVVM的代码

目前,我正在尝试构建菜单

在MainWindow.xaml中,我添加了:

<Window.Resources>
    <RoutedUICommand x:Key="Commands.Exit" />
</Window.Resources>

<Window.CommandBindings>
    <CommandBinding Command="{StaticResource Commands.Exit}" Executed="Exit_Executed" />
</Window.CommandBindings>

<DockPanel>
    <Menu DockPanel.Dock="Top">
        <MenuItem Header="_File">
            <MenuItem Header="_Exit" Command="{StaticResource Commands.Exit}" />
        </MenuItem>
    </Menu>
    ...
</DockPanel>
其思想是构造一个带有单个退出选项的菜单

正如我所说,我几乎不知道我在做什么。但在我看来,似乎是在创建一个命令,将其绑定到代码隐藏中的ExitExecuted方法,并且表示当您选择该菜单项时,执行绑定到该命令的任何内容

在AvalonDockMVVM项目中,一切都很好。在我的示例中,我在{StaticResource Commands.Exit}上打赌错误:资源命令.Exit无法解析

这让我觉得,在代码或配置中,除了XAML中的元素之外,还有一些东西定义了Commands.Exit。但就我个人而言,我找不到它


要通过命令将方法绑定到菜单,是否还需要执行其他操作?

请在删除后重试。在资源密钥中,即使用


我尝试了与您在这里提到的相同的代码,它在VS2010+.Net4.0中工作。您可以尝试在Expression blend中打开并查看问题吗?

我将您的上述示例复制到一个新的WPF项目中,只需删除省略号并在code behind中添加一个方法来处理exit命令。它运行得很好,解析命令没有问题。这是我完整的XAML

<Window x:Class="WPFTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <RoutedUICommand x:Key="Commands.Exit" />
    </Window.Resources>

    <Window.CommandBindings>
        <CommandBinding Command="{StaticResource Commands.Exit}" Executed="Exit_Executed" />
    </Window.CommandBindings>
    <DockPanel>
        <Menu DockPanel.Dock="Top">
            <MenuItem Header="_File">
                <MenuItem Header="_Exit" Command="{StaticResource Commands.Exit}" />
            </MenuItem>
        </Menu>
    </DockPanel>
</Window>

我会在两个地方寻找解决资源问题的方法。首先,检查是否有使用命令定义的项目级静态资源。其次,查看or上方的代码是否有未关闭的标记。这应该会引发一个解析错误,但可能不会?

键中的点在他们的项目中起作用,所以它应该在我的项目中起作用。但是我尝试了一下,结果没有成功。我添加了更多的代码——确切地说,我添加了他们的MainWindowViewModel。现在这个问题解决了。这让我和以前一样困惑。视图模型中与退出无关。