首页 > 解决方案 > 更新验证错误的数据源

问题描述

我有一个TextBox绑定到下面的属性。它具有自定义验证的两种方式绑定。如果验证未通过并且出现错误,则绑定不会更新源。即使验证有错误,如何才能更新源?我希望验证更像是一个警告,而不是一个错误。

这是我的简化 xaml:

<TextBox>
    <TextBox.Text>
       <Binding Path="Value"
        UpdateSourceTrigger="PropertyChanged">
          <Binding.ValidationRules>
             <validators:TelephoneNumberRule />
             <validators:NotOptionalRule />
          </Binding.ValidationRules>
       </Binding>
    </TextBox.Text>
</TextBox>

和财产:

public string Value { get; set; }

谢谢。

标签: wpfvalidationdata-binding

解决方案


将 a 的ValidationStep属性设置ValidationRuleUpdatedValue将导致它在源属性更新后运行:

<TextBox>
    <TextBox.Text>
        <Binding Path="Value" UpdateSourceTrigger="PropertyChanged">
            <Binding.ValidationRules>
                <validators:TelephoneNumberRule ValidationStep="UpdatedValue" />
                <validators:NotOptionalRule ValidationStep="UpdatedValue" />
            </Binding.ValidationRules>
        </Binding>
    </TextBox.Text>
</TextBox>

推荐阅读