首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法解析CommandBinding

无法解析CommandBinding
EN

Stack Overflow用户
提问于 2011-12-09 04:58:38
回答 2查看 326关注 0票数 1

我是第一次探索WPF和XAML,还有很多东西我还不了解。

我正在解决这个问题:http://www.codeproject.com/KB/WPF/AvalonDockMVVM.aspx

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

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

在MainWindow.xaml中,我添加了:

代码语言:javascript
复制
<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 }上有错误:资源Commands.Exit无法解析。

这让我认为,除了XAML中的元素之外,在代码或配置中的某个地方,还有一些东西定义了Commands.Exit。但无论如何,我都找不到它。

为了通过命令将方法绑定到菜单,我还需要做些什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-09 12:32:26

我直接将上面的例子复制到一个新的WPF项目中,只是删除了省略号,并在后面的代码中添加了一个方法来处理exit命令。它运行得很好,在解析命令时没有任何问题。下面是我完整的XAML

代码语言:javascript
复制
<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>

我会在两个地方寻找解决资源问题的方法。首先,检查是否有一个定义了"Commands.Exit“键的项目级静态资源(或者页面下面的另一个资源)。其次,查看或上面的代码是否有未闭合的标记。这应该抛出一个解析错误,但也许不会呢?

票数 0
EN

Stack Overflow用户

发布于 2011-12-09 05:17:26

请在移除后重试。在资源密钥.ie中使用<RoutedUICommand x:Key="CommandsExit" />

我尝试了你在这里提到的相同的代码,它在VS2010+.Net4.0..Can中工作,你试图在Expression blend中打开它,看到问题了吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8437609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档