如何声明“Date?”类型的变量?不是“DateTime?”

时间:2013-04-13 02:03:18

标签: wpf

我创建了患者表格,其中用户可能会或可能不会输入患者的出生日期。 我用它的控件是日期选择器并将其绑定到PatientDateOfBirth 但是当我尝试访问PatientDateOfBirth.HasValue时,它会给我null。

财产

public DateTime? PatientDateOfBirth
    {
        get
        {
            if (_patientDateOfBirth.HasValue)
                return _patientDateOfBirth.Value;
            else
                return null;
        }
        set
        {
            _patientDateOfBirth = value;
            OnPropertyChanged("PatientDateOfBirth");
        }
    }

XAML

<DatePicker x:Name="dPPatDOB" Text="{Binding Path=Model.PatientDateOfBirth, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Height="25" Grid.Column="1" Grid.Row="3" Margin="12,11,98,29"/>

1 个答案:

答案 0 :(得分:3)

您必须使用Date类型DateTime并忽略时间

PatientDateOfBirth属性返回null,因为您正在使用Text属性

<DatePicker x:Name="dPPatDOB" SelectedDate="{Binding Path=Model.PatientDateOfBirth, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Height="25" Grid.Column="1" Grid.Row="3" Margin="12,11,98,29"/>

注意:使用SelectedDate属性而不是Text