gpt4 book ai didi

WPF 验证问题 : how to work with validation which involves 2 fields

转载 作者:行者123 更新时间:2023-12-04 13:51:49 27 4
gpt4 key购买 nike

我在屏幕上有 2 个文本框,一个是“从金额”,另一个是“到金额”。验证规则是
“从金额”应小于“到金额”。

现在我的问题是,当用户输入一对“从金额”大于“到金额”的金额时,
如何使两个文本框都显示为红色边框。当用户更正金额时(无论是
通过减少 'from amount' 或增加 'to amount' ,如何使两个文本框都显示
错误出现?

谢谢

我的代码如下所示:

public partial class Rate : IDataErrorInfo
{
public Rate()
{
is_active = true;
registered = DateTime.Now;
}

#region FOR validation

public string Error
{
get
{
var properties = this.GetType().GetProperties();
foreach (var propertyInfo in properties)
{
string err = this[propertyInfo.Name];
if (!string.IsNullOrEmpty(err))
{
return err;
}
}
return string.Empty;
}
}

public string this[string propertyName]
{
get
{
string result = null;

if (result == null && "from_amt" == propertyName)
{
if (from_amt > to_amt)
{
result = Resources.Validation.Rate_from_amount_value;
}
}

if (result == null && "to_amt" == propertyName)
{
if (from_amt > to_amt)
{
result = Resources.Validation.Rate_to_amount_value;
}
}

return result;
}
}
#endregion


}

}

最佳答案

当我验证一个依赖于另一个文本框的值的文本框时,而不是像您提到的那样突出显示我拦截值更改并接受或拒绝更改。

我发现,如果我尝试根据对文本框 A 的更改来更改文本框 B,我总是会遇到问题,但是如果我根据文本框 B 中的值接受或拒绝对文本框 A 的更改,它工作正常。

编辑:

我假设您正在处理纯数字文本框。如果是这样的话,我建议你做我所做的。首先,对于我的验证规则,我创建了一个表示数字约束的多边形,这使您可以在两个值之间建立线性关系。然后,每当更改一个值时,我都会检查当前数据点是否与验证多边形相交。如果数据点位于多边形之外,则不允许进行更改。

您遇到的问题是,如果您位于多边形的边缘,那么该值似乎“卡住”了。为了解决这个问题,我创建了一个图形,显示了包含当前点的验证多边形。这样,如果用户将一个值推到极限,他们就可以看到为什么他们不能再改变了。

为了更好地衡量,我沿绘图的每个轴添加了 slider ,以便它们可以轻松更改值,并且我已经添加了拖动功能。

这样,您就有了稳定的验证,并且用户非常清楚如何更改这些值以及为什么它们不能超出某些限制。

关于WPF 验证问题 : how to work with validation which involves 2 fields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2051256/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com