gpt4 book ai didi

WPF ValidationRule 加载控件时验证

转载 作者:行者123 更新时间:2023-12-02 13:48:44 25 4
gpt4 key购买 nike

我有一个带有此验证的控件

<MyPicker.SelectedItem>
<Binding Path="Person.Value" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" NotifyOnValidationError="True">
<Binding.ValidationRules>
<rules:MyValidationRule ValidationType="notnull"/>
</Binding.ValidationRules>
</Binding>
</MyPicker.SelectedItem>

这是验证类:

class MyValidationRule : ValidationRule
{
private string _validationType;
public string ValidationType
{
get { return _validationType; }
set { _validationType = value; }
}

public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
ValidationResult trueResult = new ValidationResult(true, null);

switch (_validationType.ToLower())
{
case "notnull": return value == null ? new ValidationResult(false, "EMPTY FIELD") : trueResult;
default: return trueResult;
}
}
}

问题:当属性更改时,将调用 Validate( ) 方法,这是正确的。

但是要在创建 MyControl 时一开始就调用此方法吗?如果控件中存在空值,我需要在初始化后立即证明(并显示验证错误)

最佳答案

好的,我已经解决了:当元素与简单属性绑定(bind)时强制进行验证 - ValidatesOnTargetUpdated:

 <rules:MyValidationRule ValidatesOnTargetUpdated="True"  ValidationType="notnull"/>

关于WPF ValidationRule 加载控件时验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2644288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com