WPF ValidationRules禁用PropertyChanged

WPF ValidationRules禁用PropertyChanged,wpf,validation,textbox,propertychanged,Wpf,Validation,Textbox,Propertychanged,我有一个在viewmodel中更改了属性的文本框。 当我插入Binding.ValidationRules并插入一些错误的值时,它不会触发propertychanged事件,我不明白为什么。有什么帮助吗 <TextBox Name="RiskCode" HorizontalAlignment="Left" Margin="101.923,8,0,81" TextWrapping="Wrap" Width="56.077" MaxLength="6" Validation.ErrorTemp

我有一个在viewmodel中更改了属性的文本框。 当我插入Binding.ValidationRules并插入一些错误的值时,它不会触发propertychanged事件,我不明白为什么。有什么帮助吗

<TextBox Name="RiskCode" HorizontalAlignment="Left" Margin="101.923,8,0,81" TextWrapping="Wrap" Width="56.077" MaxLength="6" Validation.ErrorTemplate="{StaticResource validationTemplate}"
         Style="{StaticResource textBoxInError}">
    <TextBox.Text>
        <Binding Path="RiskCode" UpdateSourceTrigger="PropertyChanged">
            <Binding.ValidationRules>
                <vm:RiskCodeValidation/>
            </Binding.ValidationRules>
        </Binding>
    </TextBox.Text>
</TextBox>

使用
验证步骤

  • RawProposedValue
    -在进行任何转换之前运行ValidationRule
  • ConvertedProposedValue
    -转换值后运行验证规则
  • UpdatedValue
    -在更新源后运行ValidationRule
  • CommittedValue
    -将值提交到源后运行ValidationRule
默认情况下,它是
RawProposedValue
,这可以防止绑定到源代码的情况发生,因此您会感到困惑。请改用其他选项:

 <Binding.ValidationRules>
   <vm:RiskCodeValidation ValidationStep="UpdatedValue" />
 </Binding.ValidationRules>