我无法将自定义DateTime字符串格式用于绑定。我希望格式为“mmmm,yyyy”(例如“2012年6月”)。
以下不起作用。我得到一个短日期格式(m / d / yyyy)。
<TextBlock Text="{Binding ElementName=ThisWindow,
Path=Date,
StringFormat={}{0:MMMM\, yyyy}"/>
我考虑使用转换器,但我更喜欢纯XAML方法。
修改
为清楚起见,我有一个Window
,其依赖属性Date
的类型为DateTime
。在我的XAML中,我将窗口命名为“Thiswindowow”。
编辑2:
我回头查看了我的实际代码,我有一个Label
,而不是TextBlock
。我将其更改为TextBlock,它工作正常。
<Label Content="{Binding ElementName=ThisWindow,
Path=Date,
StringFormat={}{0:MMMM\, yyyy}"/>
任何人都知道为什么它不适用于Label
?
感谢。
答案 0 :(得分:11)
ContentControls
有一个ContentStringFormat
property会覆盖原始格式。
(当我看到你的问题时,我预计这实际上是问题,但最初发现TextBlock
感到惊讶)
答案 1 :(得分:2)
您的月份需要大写:
{Binding Source={x:Static sys:DateTime.Now}, StringFormat={}{0:MMMM\, yyyy}}
编辑:
Label问题可能是因为Label有Content而不是Text。
将Text =“{Binding ...}”更改为Content =“{Binding ...}”