在Prism应用程序中,我想使用validation.And我在ViewModel中实现了INotifyDataError接口,但我发现第一次加载控件时不会触发验证解决方案。
然后我发现了同样的问题,例如' wpf验证绑定未在首次加载时触发 '
我找到了解决问题的解决方案 WPF在第一次加载datacontext时没有解雇验证是:
<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"
是关键点,当第一次加载datacontext时,此属性将使WPF触发验证。
但我认为这是一个丑陋的解决方案。我需要为每个要验证的控件添加Binding.ValidationRules
。
有没有一种解决问题的好方法。
答案 0 :(得分:3)
好的我已经解决了:当元素绑定了一个简单属性时强制验证 - ValidatesOnTargetUpdated:
<rules:MyValidationRule ValidatesOnTargetUpdated="True" ValidationType="notnull"/>