【发布时间】:2013-01-18 11:14:43
【问题描述】:
全部,
我已经定义了以下
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; }
}
}
}
但我收到以下错误
我做错了什么?
我是 WPF 的新手,这个错误令人困惑,因为从书中我做了正确的事情。任何建议将不胜感激。
【问题讨论】:
-
这是否与您绑定到非静态类的静态属性有关?
-
我的建议是首先确保您可以从后面的代码中进行绑定,然后尝试将其移动到 xaml。 CommandBinding NewComparerCommandBinding = new CommandBinding( commands:ComparerCommands.NewComparison, NewComparisonCommandHandler, CanExecuteNewComparisonHandler); // 将 CommandBinding 添加到根窗口。 RootWindow.CommandBindings.Add(NewComparerCommandBinding);