【发布时间】:2020-05-04 09:00:16
【问题描述】:
在我的应用程序中,我将按钮绑定到带有“MVVM”的命令。 我的命令实现如下:
public Command CommandLoadStuff
{
get
{
return new Command(async () =>
{
await DoLongStuff();
});
}
}
问题是这些命令是异步的,用户可以多次单击它们,导致代码也执行多次。
作为第一种方法,我使用了 CanExecute:
public Command CommandLoadStuff
{
get
{
return new Command(async () =>
{
AppIsBusy = true;
await DoLongStuff();
AppIsBusy = false;
},() => !AppIsBusy);
}
}
现在我想知道是否有比单独处理每个命令的 CanExecute 更好的方法。
由于我每次都用“new”初始化命令,我想知道“Command”类是否不能相应地扩展。它应该在 CanExecute 的生命周期内阻止第二次单击按钮(可能在构造函数中?)并在命令执行完成后释放它。 (可能在 Dispose 函数中?)
有没有办法做到这一点?
【问题讨论】:
标签: c# xaml mvvm xamarin.forms