1
我们正在尝试实施类似于确认字段的字段,该字段允许继续/退出表单(而不是仅允许连续/更改表单字段的常规确认字段)。如何创建自定义确认按钮
我们成功地做到了这一点,但唯一缺少的是能够知道哪个是quitForm
字段后面的下一个字段。
当我们调用NextStep()
时,表单将退出,而不是像确认一样移动到下一个字段。
我们该如何模仿确认行为?
这是我们的实现,它非常类似于Confirmation.cs:
public class QuitFormField<T> : Field<T> where T : class
{
private const string c_continueTerm = "Continue";
private const string c_quitTerm = "Quit";
public QuitFormField(
string prompt,
string nextField,
ActiveDelegate<T> condition,
IEnumerable<string> dependencies) : base(name: Guid.NewGuid().ToString(), role:FieldRole.Confirm)
{
SetPrompt(new PromptAttribute(prompt));
SetDefine((state, field) =>
{
field.AddDescription(value: c_continueTerm, description: c_continueTerm).AddTerms(value: c_continueTerm, terms: c_continueTerm);
field.AddDescription(value: c_quitTerm, description: c_quitTerm).AddTerms(value: c_quitTerm, terms: c_quitTerm);
return Task.FromResult(true);
});
SetType(null);
SetDependencies(dependencies?.ToArray());
SetActive(condition);
_next = (value, state) => (string)value == c_continueTerm ? new NextStep(nextField) : new NextStep(StepDirection.Quit);
}
}
澄清:我们希望NextStep自动()移动到下一个字段没有我们不必指定下一个字段名
你与框架的最新版本? –