gpt4 book ai didi

c# - 类库不识别 CommandManager 类

转载 作者:IT王子 更新时间:2023-10-29 04:26:00 25 4
gpt4 key购买 nike

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

在我的例子中,我有一个命令类:

public class RelayCommand : ICommand
{
#region Fields

readonly Action<object> _execute;
readonly Predicate<object> _canExecute;

#endregion // Fields

#region Constructors

public RelayCommand(Action<object> execute)
: this(execute, null)
{

}

public RelayCommand(Action<object> execute, Predicate<object> 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 does not存在于当前上下文中”。在我的使用中,我有以下内容(应该足够了)

 using System;
using System.Windows.Input;

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

最佳答案

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

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

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

补充一下:很多人在创建类库时,选择“WPF 自定义控件库”,然后删除“Class1.cs”文件。这是一个快捷方式,可以自动将正确的命名空间添加到您的库中。它是好是坏的捷径是任何人的决定,但我一直在使用它。

关于c# - 类库不识别 CommandManager 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16950813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com