Lou*_*uro 5 validation wpf textbox propertychanged
我有以下文本框在viewmodel中具有propertychanged.当我插入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>
Run Code Online (Sandbox Code Playgroud)
使用ValidationStep.
http://msdn.microsoft.com/en-us/library/system.windows.controls.validationrule.validationstep.aspx
RawProposedValue - 在发生任何转换之前运行ValidationRule.ConvertedProposedValue - 转换值后运行ValidationRule.UpdatedValue - 更新源后运行ValidationRule.CommittedValue - 在将值提交到源之后运行ValidationRule.默认情况下,它RawProposedValue会阻止对源的绑定 - 从而导致您的混淆.改为使用其他选项:
<Binding.ValidationRules>
<vm:RiskCodeValidation ValidationStep="UpdatedValue" />
</Binding.ValidationRules>
Run Code Online (Sandbox Code Playgroud)