样式化的WPF DatePicker在焦点丢失时丢失格式,重新获得程序化更新

时间:2012-12-17 18:47:38

标签: wpf wpf-controls

我在WPF DatePicker中有一个奇怪的地方,我在一个可从here.

下载的项目中演示过

我需要一个看起来像普通文本的日期选择器,没有按钮或轮廓,按下单独的按钮时弹出日历,让用户编辑文本,以我们想要的格式显示日期 - dd MMM yyyy。

我几乎可以使用,但是当失去焦点时,日期格式会恢复dd / mm / yyyy或mm / dd / yyyy,每次焦点丢失时交替显示(即点击日期并跳出而不进行编辑),直到控件接下来完全独立于代码而更新,按“重写”即可。

任何人都可以了解正在发生的事情以及如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

DatePicker控件处理LostFocus的{​​{1}}事件,将文本解析为DatePickerTextBox,使用long或{x}格式化已解析的DateTime来自当前文化的短日期格式,然后更新文本。这将覆盖text属性的绑定,因此不会使用您的自定义格式。

如果没有编写自己的DateTime控件,似乎唯一的解决方案就是更改DatePicker上的短日期模式:https://stackoverflow.com/a/3869415/124386