当wpf日期选择器具有无效日期mvvm时阻止保存

时间:2014-09-05 13:49:14

标签: c# wpf validation xaml datepicker

我现在一直在寻找这个,我找不到我真正想要的东西。我正在尝试使用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>

0 个答案:

没有答案