在 Prism 应用程序中,我想使用验证。我已经在 ViewModel 中实现了 INotifyDataError 接口,但我发现首次加载控件时不会触发验证解决方案。
然后我发现了同样的问题,比如'wpf 验证绑定在首次加载时未触发'
我找到了解决问题的方法首次加载数据上下文时,WPF 不会触发验证就是它:
<TextBox Grid.ColumnSpan="2" Grid.Row="1" x:Name="textBoxFolder" Margin="2,4">
<TextBox.Text>
<Binding Path="this.MovieFolder" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<!-- Validation rule set to run when binding target is updated. -->
<Rules:MandatoryInputRule ValidatesOnTargetUpdated="True" />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
如你所见,ValidatesOnTargetUpdated="True"
关键是,这个属性将使 WPF 在第一次加载 datacontext 时触发验证。
但我认为这是一个丑陋的解决方案。我需要添加一个Binding.ValidationRules
对于我想要验证的每个控件。
有没有好的办法解决问题。
好的,我已经解决了:当元素与一个简单的属性绑定时强制进行验证 - ValidatesOnTargetUpdated:
<rules:MyValidationRule ValidatesOnTargetUpdated="True" ValidationType="notnull"/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)