CommunityToolkit.Mvvm 之 通过一个属性控制一个按钮是否禁用 及 按钮执行费时需任务的方法

发布时间 2023-12-22 14:29:17作者: 无处不在-超超

要达到的目的:

通过一个属性控制一个按钮是否禁用

当按钮执行费时需任务时,按下禁用按钮,任务完成后自动解除禁用

1. 属性定义

1 [ObservableProperty]
2 [NotifyCanExecuteChangedFor(nameof(SettingParamCommand))]//属性变化时通知对应的命令
3 private bool allowOperator;

2. 将命令与属性关联,命令执行时会检测关联的属性状态

  注:此处用到了异步,按钮会在按下时自动禁用,异步任务完成时自动解除禁用

1         [RelayCommand(CanExecute = nameof(AllowOperator))]
2         private async Task SettingParamAsync()
3         {
4             await Task.Run(() =>
5             {
6                 //耗时操作
7             });
8         }