C# 使用备用命名空间的WPF命令绑定

C# 使用备用命名空间的WPF命令绑定,c#,wpf,xaml,command,C#,Wpf,Xaml,Command,全部, 我定义了以下内容 xmlns:default="clr-namespace:dotDiff2013" xmlns:commands="clr-namespace:dotDiff2013.Commands" <Window.CommandBindings> <CommandBinding Command="commands:ComparerCommands.NewComparison" Executed="

全部,

我定义了以下内容

xmlns:default="clr-namespace:dotDiff2013" 
xmlns:commands="clr-namespace:dotDiff2013.Commands"
<Window.CommandBindings>
        <CommandBinding Command="commands:ComparerCommands.NewComparison"
                        Executed="NewComparison"/>
</Window.CommandBindings>
但是我得到了以下错误



我做错了什么?


我是WPF的新手,这个错误令人困惑,因为从我的书中可以看出,我做了正确的事情。任何建议都将不胜感激。

使用{x:Static commands:ComparerCommands.NewComparison}语法

这可能与您绑定到非静态类上的静态属性有关吗?我的建议是首先确保您可以从后面的代码进行绑定,然后尝试将其移动到xaml。CommandBinding NewComparerCommandBinding=新的CommandBinding(命令:ComparerCommands.NewComparison、NewComparisonCommandHandler、CanExecutenewcomparionHandler);//将CommandBinding添加到根窗口。添加(NewComparerCommandBinding);您是否删除了所有其他错误?只有在成功重新编译程序集时,设计器才能识别对代码的大多数更改。NewComparison方法看起来像什么?
namespace dotDiff2013.Commands 
{             
    public class ComparerCommands
    {
        static ComparerCommands()
        {
            InputGestureCollection inputs = new InputGestureCollection();
            inputs.Add(new KeyGesture(Key.N, ModifierKeys.Control, "Ctrl+N"));
            newComparison = new RoutedUICommand(
                "New Document Comparison", "NewComparison", typeof(ComparerCommands), inputs);
        }

        private static RoutedUICommand newComparison;
        public static RoutedUICommand NewComparison
        {
            get { return newComparison; }
        }
    }
}