Выбор даты не может использовать пользовательский формат - PullRequest
0 голосов
/ 02 ноября 2018

В моем WPF-проекте у меня есть DatePicker, но если я его выведу, он даст мне 2 ноября 2018 года.

Но мне нужно это как 2018-10-2, потому что я хочу это для SQL.

Я попробовал этот код:

dpStart.Format = DateTimePickerFormat.Custom
DateTimePicker1.CustomFormat = "dd-MM-yyyy"

Но Visual Studio говорит, что нет формата для выбора даты.

Что я делаю не так / есть ли простой способ преобразовать формат DatePicker в SQL?

Ответы [ 3 ]

0 голосов
/ 02 ноября 2018
<Style TargetType="{x:Type DatePickerTextBox}">
    <Setter Property="Control.Template">
        <Setter.Value>
            <ControlTemplate>
                <TextBox x:Name="PART_TextBox"
                     Text="{Binding Path=SelectedDate, StringFormat='dd-MM-yyyy', 
                     RelativeSource={RelativeSource AncestorType={x:Type DatePicker}}}" />
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Используйте указанный выше код, чтобы изменить формат отображения даты элемента управления DatePicker на "dd-MM-yyyy"

0 голосов
/ 02 ноября 2018

Но мне нужно это как 2018-10-2, потому что я хочу это для SQL.

Значение DateTime, сохраненное элементом управления DatePicker, не имеет определенного формата. Вы можете применить формат при преобразовании значения в string, хотя:

string formattedDate = dpStart.SelectedDate.Value.ToString("yyyy-MM-dd");

Но вы должны рассмотреть возможность передачи фактического значения DateTime, а не отформатированного string на уровень доступа к данным.

0 голосов
/ 02 ноября 2018

вы можете сделать что-то вроде

 DateTime dpStartDate = (DateTime)dpStart.SelectedDate;
 string result = dpStartDate.ToString("yyyy-MM-dd");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...