2010-10-20 36 views
0

在我的一个项目中,我需要在wpf应用程序的组合框中添加必需的字段验证。在我们的过程中,我们正在根据条件生成一个表格。在生成表单并且呈现所有控件之后,我们需要实现控件的验证规则,例如所需的文本框,我需要检查此字段是否为空,并且在组合框上,验证将检查所选索引是否大于0指数。如何实施Wpf组合框验证

我正在寻找上述所有要求,但所有的人都让我的约束力,而不是在代码文件

我如何能在文本框中应用所需的字段校验,组合框应用的验证规则在XAML文件中的示例,列表框和复选框?

回答

4

您也可以在代码中设置绑定。

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; 


    } 
} 

2-当定义一个新的文本框时,您可以在运行时添加绑定,如下所示。

 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-同样可以添加组合框

+0

感谢您的回复的情况下,我需要首先创建属性,然后指定路径值绑定类的构造函数,然后如何在运行时创建属性。 – JSJ 2010-10-20 07:36:26

+0

@J S:你会提前知道你的数据源以及你想分配的属性。 – TalentTuner 2010-10-20 07:40:40

+0

对于我的工作来说,每件事情都可以作为你的建议,但只有一件事对我来说不存在,我需要为每一个控制创建一个属性,这对我来说是不可能的。我们需要在绑定构造函数中提供的属性 – JSJ 2010-10-20 13:06:36

0

这提供了带有C#示例代码的ValidationRule。此外,this答案可能会有所帮助。

-2

如果你不想使用绑定,你可以简单地捕获LostFocus事件,并在那里实现你的验证规则。