2013-02-03 38 views
1

所有,WPF命令绑定使用备用命名空间

我已经定义了以下

xmlns:default="clr-namespace:dotDiff2013" 
xmlns:commands="clr-namespace:dotDiff2013.Commands" 
<Window.CommandBindings> 
     <CommandBinding Command="commands:ComparerCommands.NewComparison" 
         Executed="NewComparison"/> 
</Window.CommandBindings> 

其中的命名空间dotDiff2013.Commands

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; } 
     } 
    } 
} 

但我收到以下错误


Errors


我在做什么错?

我是WPF的新手,这个错误让我感到困惑,因为我已经做了正确的事情。任何意见将不胜感激。

+0

难道是关系到你在一个非静态类绑定到一个静态属性的事实呢? –

+0

我的建议是首先确保您可以从后面的代码中进行绑定,然后尝试将其移至xaml。 CommandBinding NewComparerCommandBinding = new CommandBinding( 命令:ComparerCommands.NewComparison,NewComparisonCommandHandler,CanExecuteNewComparisonHandler); //将CommandBinding添加到根窗口。 RootWindow.CommandBindings.Add(NewComparerCommandBinding); – TYY

回答

0

使用{X:静态命令:ComparerCommands.NewComparison}语法

+0

我也试过这个,它给了我同样的错误... – MoonKnight

+0

你是否删除了所有其他的错误?如果程序集成功地重新编译,那么对代码的大部分更改只会被设计人员识别。 NewComparison方法是什么样的? – Pat