我使用MVVM模式在WPF中创建了一个应用程序。
在Visual Studio调试器中,该应用程序运行良好。但是当我从debug/release文件夹中运行exe文件时,它变得非常缓慢。
这是我的RelayCommand类:
如果我从我的
请问有人能解释这是为什么吗?这与
在Visual Studio调试器中,该应用程序运行良好。但是当我从debug/release文件夹中运行exe文件时,它变得非常缓慢。
这是我的RelayCommand类:
public class RelayCommand : ICommand
{
private readonly Action<object> execute;
private readonly Predicate<object> canExecute;
public RelayCommand(Action<object> execute) : this(execute, DefaultCanExecute)
{
}
public RelayCommand(Action<object> execute, Predicate<object> canExecute)
{
this.execute = execute;
this.canExecute = canExecute;
}
public event EventHandler CanExecuteChanged
{
add
{
CommandManager.RequerySuggested += value;
}
remove
{
CommandManager.RequerySuggested -= value;
}
}
[DebuggerStepThrough]
public bool CanExecute(object parameter)
{
bool res = false;
if (canExecute != null)
{
res = canExecute(parameter);
}
return res;
}
public void Execute(object parameter)
{
execute(parameter);
}
private static bool DefaultCanExecute(object parameter)
{
return true;
}
}
如果我从我的
RelayCommand
类中删除CanExcecute()
方法,那么exe版本将像往常一样运行。请问有人能解释这是为什么吗?这与
CanExecuteChanged
事件处理程序有关吗?
return canExecute?.Invoke(parameter);
替换整个CanExecute方法。 - user1228