Wpf 在XAML代码中获取当前区域性日期模式

Wpf 在XAML代码中获取当前区域性日期模式,wpf,xaml,date,binding,currentculture,Wpf,Xaml,Date,Binding,Currentculture,所以在我的(大型)项目中,我有一个特殊的日期框,它来自一个屏蔽文本框,因此具有“格式”属性。它的工作原理是提供一个简短的日期格式,例如: <extended:DateMaskTextBox Format="yyyy-MM-dd" /> 现在,在应用程序开始时,根据某些逻辑设置CultureInfo.CurrentCulture.DateTimeFormat对象的ShortDatePattern属性。我希望获得此ShortDatePattern,将其用作DateMaskTextB

所以在我的(大型)项目中,我有一个特殊的日期框,它来自一个屏蔽文本框,因此具有“格式”属性。它的工作原理是提供一个简短的日期格式,例如:

<extended:DateMaskTextBox Format="yyyy-MM-dd" />

现在,在应用程序开始时,根据某些逻辑设置CultureInfo.CurrentCulture.DateTimeFormat对象的ShortDatePattern属性。我希望获得此ShortDatePattern,将其用作DateMaskTextBox的Format属性的值

到目前为止,我得到了这个,但它不起作用:



你知道为什么这样不行吗?谢谢。

绑定语法是正确的,应该可以正常工作。在输出窗口中是否有任何绑定错误?您是否尝试过在TextBlock.Text上显示相同的绑定以代替控件来查看字符串是否通过


没有看到它的代码,我就说不出来,但我怀疑问题可能出在DateMaskTextBox上,而不是绑定上。如果控件未正确设置为尊重其Format属性的新设置值,则绑定值可能根本没有被使用,或者使用得太晚,无法影响您在与控件交互时看到的行为。

感谢您的回复。我尝试使用该绑定添加一个文本块及其文本属性,它确实工作正常。因此,问题一定出在DateMaskTextBox上。注意Format属性只是一个常规的旧属性,使用绑定可以吗?我现在不喜欢的一件事是,我在属性设置程序中的断点并不总是关闭。如果我硬编码格式值,我的断点会在调试模式下被命中。但是,当我将Format属性设置为此绑定时,我的断点不会被命中。有什么原因吗?绑定只能在dependencProperty(作为目标)上设置,因此如果您只是使用标准的get/set属性,那么它根本不起作用。请看一些关于使用DPs的很好的解释和示例。请注意,即使设置了DP,您仍然不会在setter中命中断点,因为绑定直接调用SetValue。是的,这是我的问题。我为我的属性添加了DependencyProperty,我必须侦听OnPropertyChanged事件以正确设置属性值。谢谢你,约翰!TL;DR版本:我的绑定是正确的,我只需要属性的DependencyProperty,这样绑定就可以工作了。
<extended:DateMaskTextBox Format="{Binding Source={x:Static glob:CultureInfo.CurrentCulture}, Path=DateTimeFormat.ShortDatePattern}" />