【问题标题】:Input format of date日期输入格式
【发布时间】:2015-02-23 19:32:29
【问题描述】:

我的视图中有一个日期选择器 (xaml):

<DatePicker Name="birthday" SelectedDate="{Binding Birthday, StringFormat=dd.MM.yyy, UpdateSourceTrigger=PropertyChanged}" Grid.Row="1" Grid.Column="3" />

当前输入格式必须为dd.MM.yyy,例如 23.02.2015。我希望用户只需输入格式为ddMMyy 的日期,例如 230215,这会自动“解析”为 23.02.2015。这怎么可能?

【问题讨论】:

标签: c# wpf xaml mvvm


【解决方案1】:

试试这个,

 string dt = "230215";
 string formatted = DateTime.ParseExact(dt,"ddMMyy").ToString("dd/MM/yyyy");

【讨论】:

  • 看起来这必须在代码隐藏中完成?我尽量避免这种情况并坚持使用 MVVM。
【解决方案2】:

为什么不在你的属性设置器上做呢?

private string _birthday;

public string Birthday
{
     get{ return _birthday; }
     set
     {
         _birthday = DateTime.ParseExact(value,"ddMMyy").ToString("dd/MM/yyyy");
     }
}

【讨论】:

  • 该属性是(可为空的)DateTime,而不是 string。无论如何都可以这样做吗?
  • @mosquito87 你可以让支持字段是DateTime? 然后有两个属性来公开它。一个作为string 和上面一样,另一个作为实际的DateTime?。 string 属性仅用于连接到您的 UI。
  • 如何将DatePicker 绑定到字符串?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多