2013-02-03 37 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