WP8 Toolkit DatePicker возвращает формат значения

Есть ли способ, где вы можете изменить возвращаемое значение из DatePicker в формате "гггг-ММ-дд"? Я вставляю значение в базу данных SQLite, поэтому оно должно быть в этом формате, чтобы иметь возможность выполнять операторы datetime() для значений.

 DateTime formatStartDate = DateTime.Parse(StartDate);
 StartDate= formatStartDate.ToString("yyyy-dd-MM");

 DateTime formatEndDate = DateTime.Parse(EndDate);
 EndDate = formatEndDate.ToString("yyyy-dd-MM");

Это то, с чем я шел, и это в какой-то степени работает. Когда у меня есть строка "yyyy-MM-dd", она меняет все вокруг и вставляет в базу данных как "yyyy-dd-MM", поэтому мне пришлось изменить строку на "yyyy-dd-MM" на обойти эту проблему, и он вставляет, как я хочу, в базу данных в формате "гггг-мм-дд" (странно).

Я мог бы работать с этим, так как он делает то, что я хочу, даже если это не имеет смысла, но когда я пытаюсь проверить StartDate и EndDate, чтобы даты до "сейчас" не могли быть выбраны, все должно быть запутано, потому что в моем коде так много разных форматов дат, и он пытается сравнить форматированные даты сверху со значением даты по умолчанию, которое идет с DatePicker.

Как я проверяю;

 if (DateTime.Parse(StartDate) < DateTime.Now)
    MessageBox.Show("Please select a start date that is today or in the future.");
 if (DateTime.Parse(EndDate) < DateTime.Now)
     MessageBox.Show("Please select an end date that is today or in the future.");

Похоже, такое простое исправление, но я не могу найти способ обойти это онлайн. Кажется, что большинство постов или статей, которые я читаю, имеют дело только с внешним интерфейсом. Есть ли способ, которым я могу изменить значение, возвращаемое из DatePicker как "yyyy-MM-dd"?

(StartDate и EndDate являются строками, привязанными к DatePickers)

РЕДАКТИРОВАТЬ;

                <tk:DatePicker 
                    Grid.Row="1"
                    Grid.Column="0"
                    FontSize="20"
                    Value="{Binding StartDate, Mode=TwoWay}"
                    Background="LightGray" 
                    Foreground="#b71918"
                    BorderThickness="0"
                    Width="200"
                    HorizontalAlignment="Left"
                    VerticalAlignment="Top"/>

                <tk:DatePicker 
                    Grid.Row="1"
                    Grid.Column="1"
                    FontSize="20"
                    Value="{Binding EndDate, Mode=TwoWay}"                 
                    Background="LightGray" 
                    Foreground="#b71918"
                    BorderThickness="0"
                    Width="200"
                    HorizontalAlignment="Left"
                    VerticalAlignment="Top"/>

В моей кнопке сохранения (я хочу, чтобы формат был "yyyy-MM-dd", но он изменяется на "yyyy-dd-MM" при вставке, поэтому я отформатировал как "yyyy-dd-MM" и вставил как "yyyy- ММ-дд ", как я на самом деле хочу);

                DateTime formatStartDate = DateTime.Parse(StartDate);
                string fsd = formatStartDate.ToString("yyyy-dd-MM");

                DateTime formatEndDate = DateTime.Parse(EndDate);
                string fed = formatEndDate.ToString("yyyy-dd-MM");

                // gets all confused cause of the above formatting
                if (DateTime.Parse(StartDate) < DateTime.Now)
                    MessageBox.Show("Please select a start date that is today or in the future.");

                if (DateTime.Parse(EndDate) < DateTime.Now)
                    MessageBox.Show("Please select an end date that is today or in the future.");

                var insertGoal = new GoalsTrackerModel
                {
                    GoalName = GoalName,
                    GoalDesc = GoalDesc,
                    StartDate = fsd,
                    EndDate = fed,
                    IsOpen = 1,
                    IsComplete = 0
                };
                _dbHelper.Insert<GoalsTrackerModel>(insertGoal);
                MessageBox.Show("New goal saved. Good luck!");

    public string StartDate
    {
        get { return _startDate; }
        set
        {
            if (_startDate != value)
                _startDate = value;

            OnPropertyChanged("StartDate");
        }
    }

    public string EndDate
    {
        get { return _endDate; }
        set
        {
            if (_endDate != value)
                _endDate = value;

            OnPropertyChanged("EndDate");
        }
    }

0 ответов

Другие вопросы по тегам