我对WPF DatePicker有一个奇怪的感觉,我已经在可从这里下载的项目中演示了它。
我需要一个样式看起来像普通文本的日期选择器,没有按钮或轮廓,在按下单独的按钮时弹出日历,让用户编辑文本,并以我们想要的格式显示日期 - dd MMM yyyy。
我所拥有的几乎可以工作,但是当失去焦点时,日期格式会恢复 dd/mm/yyyy 或 mm/dd/yyyy,每次失去焦点时交替(即单击日期并在不编辑的情况下跳出),直到控件下一次完全独立于代码更新,按"重写"可以。
任何人都可以阐明正在发生的事情以及如何解决它吗?
DatePicker
控件处理DatePickerTextBox
的 LostFocus
事件,将文本分析为DateTime
,使用当前区域性的长日期或短日期格式设置已分析DateTime
的格式,然后更新文本。这将重写 text 属性上的绑定,因此不会使用自定义格式。
除了编写自己的DatePicker
控件之外,似乎唯一的解决方案是更改CurrentCulture
上的短日期模式:https://stackoverflow.com/a/3869415/124386