属性.Value不适用于DatePicker?

时间:2017-05-29 19:46:11

标签: c# wpf date datepicker

这可能是一个初学者问题,但我想从WPF应用程序C#中的datepicker字段中获取日期(yyyy-mm-dd)。我知道我必须使用DateTime方法保存日期,因为我要将其插入到数据库中。

我在网上看到他们说使用.Value属性,但是如果我在DatePicker之后输入.Value属性,它就不会重新属性。

有人知道如何修复此问题或者有另一种方法从日期选择器中获取日期吗?

private void btnPlanGP_Click(object sender, RoutedEventArgs e)
    {
        try
        {

            string grandPrixNaam = naamGPTextBox.Text;
            DateTime datumGP = new DateTime();
            datumGP = datumDatePicker.Value;
            int aantalRondes = Convert.ToInt32(aantalRondesTextBox.Text);
            string naamBaan = naamBaanComboBox.SelectedItem.ToString();
            int coureurID = Convert.ToInt32(coureurIDComboBox.SelectedItem);
            int gastID = Convert.ToInt32(gastIDComboBox.SelectedItem);

            try
            {
                formule1DataSetGrandPrixTableAdapter.Insert(grandPrixNaam, datumGP, naamBaan, aantalRondes, coureurID, gastID);
                formule1DataSetGrandPrixTableAdapter.Fill(formule1DataSet.GrandPrix);
            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(Convert.ToString(ex));
        }
    }

2 个答案:

答案 0 :(得分:0)

WPF中的内置DatePicker控件有一个SelectedDate,它返回一个DateTime?。试试这个:

string grandPrixNaam = naamGPTextBox.Text;
DateTime datumGP = datumDatePicker.SelectedDate.HasValue ? datumDatePicker.SelectedDate.Value : default(DateTime);
int aantalRondes = Convert.ToInt32(aantalRondesTextBox.Text);
...

答案 1 :(得分:0)

我得到了Ed Plunkett的答案。 WPF确实没有.Value属性。我把它改成了.SelectedDate,这很有效。

DateTime? datumGP = new DateTime();
datumGP = datumDatePicker.SelectedDate;