gpt4 book ai didi

.net - 如何在未输入任何内容时禁止验证

转载 作者:行者123 更新时间:2023-12-03 08:57:57 25 4
gpt4 key购买 nike

我将 WPF 数据绑定(bind)与实现 的实体一起使用IDataErrorInfo 界面。一般来说,我的代码如下所示:

商业实体:

public class Person : IDataErrorInfo 
{
public string Name { get; set;}

string IDataErrorInfo.this[string columnName]
{
if (columnName=="Name" && string.IsNullOrEmpty(Name))
return "Name is not entered";
return string.Empty;
}
}

Xaml 文件:
<TextBox Text="{Binding Path=Name, Mode=TwoWay, ValidatesOnDataErrors=true}" />

当用户单击“创建新人”时,将执行以下代码:
DataContext = new Person();

问题是当人刚被创建时,它的名字是空的,而 WPF 立即绘制红框并显示错误消息。我希望它仅在名称已被编辑且焦点丢失时才显示错误。有人知道这样做的方法吗?

最佳答案

我发现了另一种解决方案,但我不太喜欢它。您必须在页面加载时清除验证。

我的意思是你必须这样做:
Validation.ClearInvalid(...)例如,如果您有一个不想被验证的文本框,应该调用
Validation.ClearInvalid(txtSomething.GetBindingExpression(TextBox.TextProperty))或类似的东西。

您应该为要清除验证的每个控件执行此操作。

我不喜欢这个解决方案,但这是我发现的最好的。我希望 wpf 有一些“开箱即用”的东西,但没有找到。

关于.net - 如何在未输入任何内容时禁止验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1502263/

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