启动时WPF文本框验证

时间:2015-04-12 03:37:02

标签: c# wpf validation mvvm

在我的WPF项目中,我已将验证添加到名为“地址”的字符串属性中,如下所示:

            <TextBox Grid.Row="5" Grid.Column="1" Margin="5" Validation.ErrorTemplate="{StaticResource errorTemplateSilverlightStyle}">
            <TextBox.Text>
                <Binding Path="Address" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged"
                         ValidatesOnNotifyDataErrors="True" NotifyOnValidationError="True">
                    <Binding.ValidationRules>
                        <vd:EmptyStringValidation ValidatesOnTargetUpdated="True" /> 
                    </Binding.ValidationRules>
                </Binding>
            </TextBox.Text>
        </TextBox>

自定义验证规则EmptyStringValidation包含以下简单验证方法:

        public override ValidationResult Validate(object value, CultureInfo cultureInfo)
    {

        if(String.IsNullOrWhiteSpace((string)value))
        {
            Debug.WriteLine("Its empty");
            return new ValidationResult(false, "Field cannot be empty");
        }
        else
        {
            return new ValidationResult(true, null);
        }
    }

我的问题是,在启动项目时,地址文本框没有显示红色轮廓以指示存在错误。

我知道自定义空字符串规则 正在执行,因为我设置了一个调试,如果字符串为空则打印出来。

如果我在地址文本框中键入内容,然后将其删除,则保留空文本框,然后会出现红色轮廓。

如何让这个大纲在启动时出现,或者至少在“地址”文本框的标签上显示?

我正在使用MVVM编码模式,因此希望避免使用事件。

0 个答案:

没有答案