C# 如何实现Wpf组合框验证
在我的一个项目中,我需要在wpf应用程序的组合框中添加必需的字段验证。在我们的过程中,我们根据条件生成一个表单。生成表单并呈现所有控件后,我们需要为控件实现验证规则,如“必需”文本框,我需要检查此字段是否为空,并且在组合框上,验证将检查所选索引是否大于0索引 我正在搜索上述所有需求,但所有这些都给了我一个在xaml文件而不是代码文件中绑定和应用验证规则的示例C# 如何实现Wpf组合框验证,c#,wpf,C#,Wpf,在我的一个项目中,我需要在wpf应用程序的组合框中添加必需的字段验证。在我们的过程中,我们根据条件生成一个表单。生成表单并呈现所有控件后,我们需要为控件实现验证规则,如“必需”文本框,我需要检查此字段是否为空,并且在组合框上,验证将检查所选索引是否大于0索引 我正在搜索上述所有需求,但所有这些都给了我一个在xaml文件而不是代码文件中绑定和应用验证规则的示例 如何在文本框、组合框、列表框和复选框中应用所需的字段验证?这提供了C#示例代码。另外,回答可能会有所帮助。如果您不想使用绑定,您可以简单地
如何在文本框、组合框、列表框和复选框中应用所需的字段验证?这提供了C#示例代码。另外,回答可能会有所帮助。如果您不想使用绑定,您可以简单地捕获LostFocus事件,并在那里实现您的验证规则。您也可以在代码中设置绑定 1-创建一个新的验证规则类,如下所示
public class TextBoxEmptyRule : ValidationRule
{
public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
{
ValidationResult vr = new ValidationResult(true,null);
if (string.IsNullOrEmpty(value))
{
vr.ErrorContent = " Value can not be null!";
vr.IsValid = false;
}
return vr;
}
}
TextBox txt = new TextBox();
Binding b = new Binding("Your Path Here");
b.Source = "Your Source Here";
b.ValidationRules.Add(new TextBoxEmptyRule());
txt.SetBinding(TextBox.TextProperty, b);
2-定义新文本框时,可以在运行时添加绑定,如下所示
public class TextBoxEmptyRule : ValidationRule
{
public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
{
ValidationResult vr = new ValidationResult(true,null);
if (string.IsNullOrEmpty(value))
{
vr.ErrorContent = " Value can not be null!";
vr.IsValid = false;
}
return vr;
}
}
TextBox txt = new TextBox();
Binding b = new Binding("Your Path Here");
b.Source = "Your Source Here";
b.ValidationRules.Add(new TextBoxEmptyRule());
txt.SetBinding(TextBox.TextProperty, b);
3-您可以向绑定添加任意多个规则
4-可以为组合框添加相同的属性谢谢您的回复,我需要先创建属性,然后将路径值分配给绑定类构造函数,然后再如何在运行时创建属性。@J S:您会提前知道数据源以及要分配的属性。作为您的建议,我的工作一切都很好,但是我只缺少一件事,我需要为每个控件创建一个属性,这对我来说是不可能的。我们需要在绑定构造函数中提供的属性此示例包含错误:验证结果上的ErrorContent属性为只读。您应该在ValidationResult构造函数中设置ErrorContent