我有TimePicker
和验证规则
<controls:TimePicker Grid.Row="0" Grid.Column="1" Culture="Ru-ru" Margin="5,5,5,2.5">
<controls:TimePicker.SelectedTime>
<Binding Path="EditTimeStart" Mode="TwoWay" NotifyOnValidationError="True" >
<Binding.ValidationRules>
......
</Binding.ValidationRules>
</Binding>
</controls:TimePicker.SelectedTime>
</controls:TimePicker>
和一个按钮(“保存”)。
<Button Content="Save" Command="{Binding Path=SaveCommand}"/>
在我的ViewModel
中SaveCommand = new DelegateCommand(Save, CanSave);
其中CanSave
方法处理另一个сonditions(条件与ValidationRules不相交)
问题。我可以使用SaveButton启用绑定验证和CanSave
方法吗?
答案 0 :(得分:2)
当您遵循MVVM模式并绑定到视图模型的命令属性时,通常应该在视图模型类中实现验证逻辑,而不是使用验证规则。
您可以通过实现IDataErrorInfo
接口或.NET Framework 4.5中引入的更新且更灵活的INotifyDataErrorInfo
接口来实现此目的。有关详细信息,请参阅以下博文:https://blog.magnusmontin.net/2013/08/26/data-validation-in-wpf/。