2012-06-08 67 views
8

我無法讓我的自定義日期時間字符串格式在我的綁定中工作。我希望格式爲「mmmm,yyyy」(例如「2012年6月」)。WPF中的自定義日期時間字符串格式

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

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

我已經考慮過使用轉換器,但我更喜歡純粹的XAML方法。

編輯:

爲清楚起見,我有一個WindowDateTime類型的依賴屬性Date。在我的XAML中,我將窗口命名爲「Thiswindow」。

編輯2:

我回頭看了看我的實際代碼,我有一個Label,而不是一個TextBlock。我將其更改爲TextBlock並且工作正常。

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

任何人都知道爲什麼它不起作用Label

謝謝。

+0

這個工作對我來說(除了它應該是'{0:MMMM \,YYYY}' )。關於你的「日期」屬性的東西?是偶然返回一個'string'而不是'DateTime'? – CodingGorilla

+0

我會編輯以使情況更加清晰...... – gregsdennis

回答

11

ContentControls有一個ContentStringFormat property將覆蓋原來的格式。

(當我看到你的問題,我希望這是真正的問題卻驚訝地發現,在第一個TextBlock

+0

我不知道那個屬性。太棒了,謝謝你。 – gregsdennis

2

你每月必須是大寫:

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

編輯:

標籤問題,可能是因爲標籤有內容,而非文字。

更改文本= 「{綁定...}」,以內容= 「{綁定...}」

+0

當它是'Label'時,我將它作爲'Content'屬性,並且它不起作用。 – gregsdennis

相關問題