最佳实践是什么,从Prism
框架中DelegateCommand
仅MVVM
一次可执行,以防止按钮发送可能导致应用程序崩溃的点击垃圾邮件。 非常感谢!
这是我通常做的:
- 您应该具有要删除的内容的属性。使用可以执行
- 在委托命令中,监视属性是否为 null?用
- 观察委托命令中的属性,并将其设置为"你是什么">
- 删除。在 DeleteCommandExecute 中,删除后将属性设置为 null。
这是一个例子
private Class object;
public Class Object
{
get { return object; }
set { SetProperty(ref object, value); }
}
private DelegateCommand _delete;
public DelegateCommand Delete =>
_delete ?? (_delete = new DelegateCommand(ExecuteDelete, CanExecuteDelete)).ObservesProperty(()=> Object);
void ExecuteDelete()
{
MyServices.Delete(Object);
Object = null;
}
bool CanExecuteDelete()
{
return Object != null;
}