wpf文本框错误提供程序无法正常工作

时间:2016-07-22 16:38:45

标签: c# wpf csla

我有一个非常简单的wpf表单,其中包含一个绑定到CSLA业务对象(版本4.5.7)的文本框。我正在分配属性 AText 一个 String.Empty

首次加载窗口时,应该激活错误提供程序,因为它是必填字段。但是当我开始键入第一个字符时它被激活,因为我将最小字符属性字段设置为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); }
            }
          }
      }

1 个答案:

答案 0 :(得分:0)

您是否在从DataPortal_Create / DataPortal_Fetch返回之前调用BusinessRules.CheckRules?规则不会自动运行,因此对象将从有效开始。