9

我无法让我的自定义 DateTime 字符串格式在我的绑定中工作。我希望格式为“mmmm, yyyy”(例如“June, 2012”)。

以下不起作用。我得到一个短日期格式(m/d/yyyy)。

<TextBlock Text="{Binding ElementName=ThisWindow,
                          Path=Date,
                          StringFormat={}{0:MMMM\, yyyy}"/>

我考虑过使用转换器,但我更喜欢纯 XAML 方法。

编辑:

为清楚起见,我有一个类型Window为依赖属性DateDateTime。在我的 XAML 中,我将窗口命名为“Thiswindow”。

编辑2:

我回顾了我的实际代码,我有一个Label,而不是TextBlock. 我将其更改为 TextBlock,它工作正常。

<Label Content="{Binding ElementName=ThisWindow,
                 Path=Date,
                 StringFormat={}{0:MMMM\, yyyy}"/>

任何人都知道为什么它不起作用Label

谢谢。

4

2 回答 2

12

ContentControls具有覆盖原始格式的ContentStringFormat属性。

(当我看到你的问题时,我以为这实际上是问题,但一开始却很惊讶地发现TextBlock

于 2012-06-08T17:15:16.890 回答
2

Your month needs to be in uppercase:

{Binding Source={x:Static sys:DateTime.Now}, StringFormat={}{0:MMMM\, yyyy}}

EDIT:

The Label problem is probably because Label has Content, not Text.

Change the Text="{Binding ...}" to Content="{Binding ...}"

于 2012-06-08T17:02:20.283 回答