WPF 定义Command
2021-05-14 08:27
标签:otn query null default obj log hand ica manage 直接上代码: 在viewmodel中,定义一个Command属性 Command=new LoginDelegateCommand (()={添加逻辑}); 然后绑定即可。 WPF 定义Command 标签:otn query null default obj log hand ica manage 原文地址:http://www.cnblogs.com/kybs0/p/7523654.html public class LoginDelegateCommand : ICommand
{
private Action _execute;
private Predicateobject> _canExecute;
public LoginDelegateCommand([NotNull]Action execute): this(execute, DefaultCanExecute)
{
}
public LoginDelegateCommand([NotNull]Action execute, Predicateobject> canExecute)
{
this._execute = execute ?? throw new ArgumentNullException("execute");
this._canExecute = canExecute ?? throw new ArgumentNullException("canExecute");
}
public bool CanExecute(object parameter)
{
return this._canExecute != null && this._canExecute(parameter);
}
public void Execute(object parameter)
{
UserLoginHelper.NotifyToLoginWindow(() =>
{
this._execute();
});
}
public event EventHandler CanExecuteChanged
{
add
{
CommandManager.RequerySuggested += value;
this.CanExecuteChangedInternal += value;
}
remove
{
CommandManager.RequerySuggested -= value;
this.CanExecuteChangedInternal -= value;
}
}
private event EventHandler CanExecuteChangedInternal;
public void OnCanExecuteChanged()
{
EventHandler handler = this.CanExecuteChangedInternal;
handler?.Invoke(this, EventArgs.Empty);
}
private static bool DefaultCanExecute(object parameter)
{
return true;
}
}