koa*_*ala 23 c# wpf command class-library mvvm
我正在开发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在当前上下文中不存在".在我的使用中我有以下(这应该就够了)
 using System;
 using System.Windows.Input;
任何想法为什么我不能在"类库项目"中这样做?
Gay*_*Fow 54
转到类库的"引用"部分,然后选择"添加引用".查找名为"PresentationCore"的程序集并添加它.
然后在您的类文件中添加using语句 using System.Windows.Input;
然后,您将能够按预期访问CommandManager.
只需添加:很多人在创建类库时,选择"WPF Custom Control Library"然后删除"Class1.cs"文件.它是一种自动将正确的命名空间添加到库中的快捷方式.无论是好的还是坏的快捷方式都是任何人的电话,但我一直都在使用它.