我有来自Telerik的简单DelegateCommand。我有一个案子, 我有一个带文本框和按钮的屏幕。每当我点击保存时,该按钮应被禁用,并且在操作完成之前不应接受任何点击。
实施如下,
public DelegateCommand SaveRemarksCommand
{
get
{
return _saveRemarksCommand = new DelegateCommand((r) =>
{
CanSaveRemarks = false;
SaveRemarksCommand.InvalidateCanExecute();
SaveRemarks(null);
},
(result) =>
{
return CanSaveRemarks;
});
}
}
这里我将CanSaveRemarks操作为false,直到执行SaveRemarks。 现在的问题是,如果我在按钮上快速点击多次,按钮会接受多次点击以保存重复项。
答案 0 :(得分:0)
您还可以在命令处理程序中检查CanSaveRemarks
属性。
此属性已经可供您使用,因此您无需介绍其他内容。
new DelegateCommand((r) =>
{
if (!CanSaveRemarks)
{
return;
}
CanSaveRemarks = false;
try
{
SaveRemarksCommand.InvalidateCanExecute();
SaveRemarks(null);
}
finally
{
CanSaveRemarks = true;
}
},
(result) =>
{
return CanSaveRemarks;
});