2010-10-20 97 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事件,並在那裏實現你的驗證規則。