我现在一直在寻找这个,我找不到我真正想要的东西。我正在尝试使用mvvm模式,在我的保存按钮上,我正在使用中继命令:
<Button x:Name="_Save" Grid.Row="12" Margin="21,17,5,10" Content="_Save" FontSize="12" FontWeight="SemiBold" Width="75" Command="{Binding SaveCommand}" CommandParameter="{Binding RelativeSource={
RelativeSource AncestorType={x:Type Window}}}" />
和VM代码
public ICommand SaveCommand
{
get
{
if (_saveCommand == null)
{
_saveCommand = new RelayCommand(
param => this.Save(param),
param => this.CanSave
);
}
return _saveCommand;
}
}
bool CanSave
{
get
{
_validator = new CRValidation(this);
return _validator.IsValid;
return true;
}
}
但是,当有人在我的日期选择器中输入无效文本时,我想阻止保存。即字母,或1/1/0002之类的东西。目前,当输入该数据时,datepicker返回null而不是无效数据并继续保存。我已尝试绑定文本属性和选定的日期属性。如何在仍然使用mvvm模式的情况下评估包含无效数据的日期选择器?
<DatePicker Grid.Row="2" Grid.Column="1" SelectedDate="{Binding PeriodEndDate, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"></DatePicker>