我正在使用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”格式的值。
我该怎么办?
答案 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");
}
}