2016-07-22 85 views
0

我有一個非常簡單的wpf表單,它包含一個綁定到CSLA業務對象(版本4.5.7)的文本框。我正在分配物業AText a String.Emptywpf文本框錯誤提供程序不工作

錯誤提供程序應在窗口初始加載時被激活,因爲它是必填字段。但是,當我開始輸入第一個字符時,它被激活,因爲我已將最小字符屬性字段設置爲5個字符。當我從盒子中刪除所有字符時,錯誤提供程序仍保持不變。

爲什麼錯誤提供程序在窗口加載時未被激活?

謝謝

WPF

<Grid> 
    <TextBox Height="50" Width="300" Text="{Binding AText, Mode=TwoWay, NotifyOnTargetUpdated=True, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, ValidatesOnExceptions=True}" /> 
    </Grid> 

C#

namespace TestNameSpace 
    { 
    [Serializable()] 
    public class CSLAClass : BusinessBase<CSLAClass> 
     { 
      public CSLAClass() 
      { 
      AText = String.Empty; 
      } 
     public static PropertyInfo<string> ATextProperty = RegisterProperty<string>(p => p.AText); 
     [Required, MinLength(5,ErrorMessage ="The Minimum is 5"), MaxLength(10)] 
     public string AText 
      { 
      get { return GetProperty(ATextProperty); } 
      set { SetProperty(ATextProperty, value); } 
      } 
      } 
     } 

回答

0

你從你的DataPortal_Create/DataPortal_Fetch返回之前會調用BusinessRules.CheckRules?規則不會自動從這些規則中運行,因此該對象將從有效的開始。