在Prism应用程序中,我想要使用验证技术。我已经在ViewModel中实现了INotifyDataError接口,但是发现当控件第一次加载时,验证解决方案并没有被触发。
然后我找到了一个与之类似的问题:'wpf Validation Binding not fired on First Load'.
我找到了解决方案,解决了WPF在第一次加载数据上下文时不触发验证的问题。
然后我找到了一个与之类似的问题:'wpf Validation Binding not fired on First Load'.
我找到了解决方案,解决了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在第一次加载数据上下文时触发验证。
但我认为这是一个不好的解决方案。我需要为每个要验证的控件添加 Binding.ValidationRules
。
有没有更好的解决办法呢?