属性更改时自动通知命令重新更新命令状态的方法
方法一
1、 定义属性。性性中添加此句ExecuteDelegateCommand.RaiseCanExecuteChanged();
private bool _isEnabled;
public bool IsEnabled
{
get { return _isEnabled; }
set
{
SetProperty(ref _isEnabled, value);
ExecuteDelegateCommand.RaiseCanExecuteChanged();
}
}
2、定义命令
public DelegateCommand ExecuteDelegateCommand { get; private set; }
3、实例化命令
ExecuteDelegateCommand = new DelegateCommand(Execute, CanExecute);
4、定义执行命令的函数
private void Execute()
{
}
private bool CanExecute()
{
return IsEnabled;
}
方法二
1、 定义属性。
private bool _isEnabled;
public bool IsEnabled
{
get { return _isEnabled; }
set
{
SetProperty(ref _isEnabled, value);
}
}
2、定义命令
public DelegateCommand DelegateCommandObservesProperty { get; private set; }
3、实例化命令
DelegateCommandObservesProperty = new DelegateCommand(Execute, CanExecute).ObservesProperty(() => IsEnabled);
4、定义执行命令的函数
private void Execute()
{
}
private bool CanExecute()
{
return IsEnabled;
}
方法三
1、 定义属性。
private bool _isEnabled;
public bool IsEnabled
{
get { return _isEnabled; }
set
{
SetProperty(ref _isEnabled, value);
}
}
2、定义命令
public DelegateCommand DelegateCommandObservesCanExecute { get; private set; }
3、实例化命令
DelegateCommandObservesCanExecute = new DelegateCommand(Execute).ObservesCanExecute(() => IsEnabled);
4、定义执行命令的函数
private void Execute()
{
}