样式化的 WPF 日期选取器在焦点丢失时丢失格式,在编程更新时重新获得格式



我对WPF DatePicker有一个奇怪的感觉,我已经在可从这里下载的项目中演示了它。

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

我所拥有的几乎可以工作,但是当失去焦点时,日期格式会恢复 dd/mm/yyyy 或 mm/dd/yyyy,每次失去焦点时交替(即单击日期并在不编辑的情况下跳出),直到控件下一次完全独立于代码更新,按"重写"可以。

任何人都可以阐明正在发生的事情以及如何解决它吗?

DatePicker 控件处理DatePickerTextBoxLostFocus 事件,将文本分析为DateTime,使用当前区域性的长日期或短日期格式设置已分析DateTime的格式,然后更新文本。这将重写 text 属性上的绑定,因此不会使用自定义格式。

除了编写自己的DatePicker控件之外,似乎唯一的解决方案是更改CurrentCulture上的短日期模式:https://stackoverflow.com/a/3869415/124386

最新更新