WPF ValidationRules禁用PropertyChanged
我有一个在viewmodel中更改了属性的文本框。 当我插入Binding.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
<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>
使用
验证步骤
-在进行任何转换之前运行ValidationRuleRawProposedValue
-转换值后运行验证规则ConvertedProposedValue
-在更新源后运行ValidationRuleUpdatedValue
-将值提交到源后运行ValidationRuleCommittedValue
RawProposedValue
,这可以防止绑定到源代码的情况发生,因此您会感到困惑。请改用其他选项:
<Binding.ValidationRules>
<vm:RiskCodeValidation ValidationStep="UpdatedValue" />
</Binding.ValidationRules>