类库无法识别CommandManager类

我正在开发WPF应用程序,我想重用我在所有这些应用程序中相同的类,所以我可以添加它们作为参考。

在我的情况下,我有一个我的命令类:

public class RelayCommand : ICommand { #region Fields readonly Action _execute; readonly Predicate _canExecute; #endregion // Fields #region Constructors public RelayCommand(Action execute) : this(execute, null) { } public RelayCommand(Action execute, Predicate canExecute) { if (execute == null) throw new ArgumentNullException("execute"); _execute = execute; _canExecute = canExecute; } #endregion // Constructors #region ICommand Members public bool CanExecute(object parameter) { return _canExecute == null ? true : _canExecute(parameter); } public event EventHandler CanExecuteChanged { add { CommandManager.RequerySuggested += value; } remove { CommandManager.RequerySuggested -= value; } } public void Execute(object parameter) { _execute(parameter); } #endregion // ICommand Members } 

这在我的应用程序中非常完美,但是当我想创建一个我想在项目中添加的类库时,Visual Studio无法构建,因为“ CommandManager在当前上下文中不存在”。 在我的使用中我有以下(这应该就够了)

  using System; using System.Windows.Input; 

任何想法为什么我不能在“类库项目”中这样做?

转到类库的“引用”部分,然后选择“添加引用”。 查找名为“PresentationCore”的程序集并添加它。

然后在您的类文件中using System.Windows.Input;添加using语句using System.Windows.Input;

然后,您将能够按预期访问CommandManager。

只需添加:很多人在创建类库时,选择“WPF Custom Control Library”然后删除“Class1.cs”文件。 它是一种自动将正确的命名空间添加到库中的快捷方式。 这是一个好的或坏的捷径是任何人的电话,但我一直使用它。