当我从GUI设置值时,DateTimePicker的格式不正确

时间:2019-02-15 01:21:15

标签: c# wpf

我正在使用DateTimePickaer作为MVVM模式制作WPF应用程序。

我必须使用“ yyyy / MM / dd HH”格式设置值,因为该应用程序适用于日语。

(我不应该在GUI中显示“分钟和秒”,但我必须获得将00设置为“分钟和秒”的值)

但是,如果我通过GUI控制DateTimePickar,则该值格式将更改为“ MM / dd / yyyy HH”。

如果我在应用程序的逻辑中设置了该值,则可以使用正确的格式获取值。

我的放荡在那里。

//查看

<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");
    }
}

在此应用中,启动并按下按钮后,您将获得“ yyyy / MM / dd HH:00:00”格式的值。

但是接下来,如果您通过GUI控制DateTimePicker并按下按钮,则将获得“ MM / dd / yyyy HH:00:00”格式的值。

当我也从GUI控制该代码时,我也想获得“ yyyy / MM / dd HH:00:00”格式的值。

我该怎么办?

2 个答案:

答案 0 :(得分:0)

我将DateTimeStartVal的类型更改为DateTime类型。

答案 1 :(得分:-1)

// 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");
    }
}