使命令 1 次可执行
Making Command 1-time-executable
最好的做法是在 MVVM
中从 Prism
框架制作一个 DelegateCommand
只能执行一次,以防止点击垃圾邮件按钮,这可能会导致应用程序崩溃。
非常感谢!
这是我通常做的事情:
- 对于要删除的内容,您应该有一个 属性。使用 CanExecute
- 在您的委托命令中,观察 属性 是否为空?使用
- 在您的 DelegateCommand 中设置 ObserveProperty 并将其设置为您的身份
- 正在删除。在您的 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;
}
最好的做法是在 MVVM
中从 Prism
框架制作一个 DelegateCommand
只能执行一次,以防止点击垃圾邮件按钮,这可能会导致应用程序崩溃。
非常感谢!
这是我通常做的事情:
- 对于要删除的内容,您应该有一个 属性。使用 CanExecute
- 在您的委托命令中,观察 属性 是否为空?使用
- 在您的 DelegateCommand 中设置 ObserveProperty 并将其设置为您的身份
- 正在删除。在您的 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;
}