Формат DateTimePicker не правильный, когда я устанавливаю значение из GUI - PullRequest
0 голосов
/ 15 февраля 2019

Я делаю приложение WPF, используя DateTimePickaer в качестве шаблона MVVM.

Мне нужно установить значение в формате "гггг / мм / дд ЧЧ", потому что это приложение для японского языка.

(Я не должен показывать минуты и секунды в графическом интерфейсе, но мне нужно получить значение, для которого я установил 00, равное минутам и секундам)

Но если я управляю DateTimePickar из графического интерфейса, этот формат значения изменится на "MM / dd/ гггг ЧЧ ".

Если я установлю это значение в логике приложения, я смогу получить значение в правильном формате.

У меня есть выборка.

// Просмотр

<xcad:DateTimePicker FormatString="yyyy/MM/dd HH" FontSize="11" Format="Custom" Value="{Binding DateTimeStart}" Margin="47,62,254,223" />
<Button Content="ShowValue!" HorizontalAlignment="Left" Height="76" Margin="72,192,0,0" VerticalAlignment="Top" Width="135" Click="OnClickOpen"/>

// CodeBehinde

private void OnClickOpen(object sender, RoutedEventArgs e)
{
    MessageBox.Show(mMainViewModel.DateTimeStart);            
}

// ViewModel

private string DateTimeStartVal = DateTime.Now.ToString().Substring(0, DateTime.Now.ToString().IndexOf(':')) + ":00:00";
public string DateTimeStart
{
    get { return DateTimeStartVal; }
    set
    {
        DateTimeStartVal = value.Substring(0, value.IndexOf(':')) + :00";
        NotifyPropertyChanged("DateTimeStart");
    }
}

В этом приложении вы получаете значение с помощью "гггг / мм / дд ЧЧ: 00:Формат 00 "при запуске и нажатии кнопки.

Но затем, если вы управляете DateTimePicker из графического интерфейса пользователя и нажимаете кнопку, вы получаете значение в формате" MM / dd / yyyy HH: 00: 00 ".

Я хочу получить значение в формате "гггг / мм / дд ЧЧ: 00: 00", когда я также управляю этим из графического интерфейса.

Что мне делать?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Я изменяю тип DateTimeStartVal на тип DateTime.

0 голосов
/ 15 февраля 2019

// CodeBehinde

private void OnClickOpen(object sender, RoutedEventArgs e)
{
    MessageBox.Show(mMainViewModel.DateTimeStart.Substring(0, value.IndexOf(':')) + :00");            
}

// ViewModel

private string DateTimeStartVal = DateTime.Now.ToString().Substring(0, DateTime.Now.ToString().IndexOf(':')) + ":00:00";
public string DateTimeStart
{
    get { return DateTimeStartVal; }
    set
    {
        DateTimeStartVal = value;
        NotifyPropertyChanged("DateTimeStart");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...