CommunityToolkit.Mvvm 之 通过一个属性控制一个按钮是否禁用 及 按钮执行费时需任务的方法
要达到的目的:
通过一个属性控制一个按钮是否禁用
当按钮执行费时需任务时,按下禁用按钮,任务完成后自动解除禁用
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 }