我在WPF DatePicker中有一个奇怪的地方,我在一个可从here.
下载的项目中演示过我需要一个看起来像普通文本的日期选择器,没有按钮或轮廓,按下单独的按钮时弹出日历,让用户编辑文本,以我们想要的格式显示日期 - dd MMM yyyy。
我几乎可以使用,但是当失去焦点时,日期格式会恢复dd / mm / yyyy或mm / dd / yyyy,每次焦点丢失时交替显示(即点击日期并跳出而不进行编辑),直到控件接下来完全独立于代码而更新,按“重写”即可。
任何人都可以了解正在发生的事情以及如何解决这个问题吗?
答案 0 :(得分:0)
DatePicker
控件处理LostFocus
的{{1}}事件,将文本解析为DatePickerTextBox
,使用long或{x}格式化已解析的DateTime
来自当前文化的短日期格式,然后更新文本。这将覆盖text属性的绑定,因此不会使用您的自定义格式。
如果没有编写自己的DateTime
控件,似乎唯一的解决方案就是更改DatePicker
上的短日期模式:https://stackoverflow.com/a/3869415/124386