属性更改时自动通知命令重新更新命令状态的方法
方法一
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()
{
}

本文介绍三种在属性更改时自动通知命令更新其状态的方法:通过手动调用RaiseCanExecuteChanged,观察属性变化或观察CanExecute函数。每种方法都详细展示了如何定义属性、命令及其实例化过程。

1191

被折叠的 条评论
为什么被折叠?



