2012-06-08 13 views
8

Nie można pobrać mojego niestandardowego formatu ciągów DateTime do pracy w powiązaniu. Chcę, aby format był "mmmm, yyyy" (np. "Czerwiec 2012").Niestandardowy format daty w formacie WPF

Poniższe nie działają. Dostaję krótki format daty (m/d/rrrr).

Rozważałem zastosowanie konwertera, ale preferuję podejście czysto XAML.

Edit:

Dla jasności, mam Window z właściwości zależności Date typu DateTime. W moim XAML nazwałem okno "Thiswindow".

Edit 2:

Spojrzałem na mojego aktualnego kodu, a miałem Label, a nie TextBlock. Zmieniłem go na TextBlock i działa dobrze.

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

Każdy wie, dlaczego to nie działa z Label?

Dzięki.

+0

ten pracował dla mnie (chyba powinno być '{0: MMMM \, yyyy}'). Coś o twojej własności "Data"? Czy przypadkiem zwraca 'string' zamiast' DateTime'? – CodingGorilla

+0

Będę edytować, aby sytuacja stała się jaśniejsza ... – gregsdennis

Odpowiedz

11

ContentControls mają ContentStringFormat property które zastępują oryginalne formatowanie.

(kiedy zobaczyłem swoje pytanie i oczekiwać, że jest to rzeczywiście problem, ale był zaskoczony, aby znaleźć TextBlock początkowo)

+0

Nie wiedziałem o tej nieruchomości. Wspaniale! Dziękuję. – gregsdennis

2

Twój miesięcy musi być wielkimi literami:

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

EDIT:

Problem Label to prawdopodobnie dlatego, Wytwórnia posiada zawartość, a nie tekst.

zmienić tekst = "{Binding ...}" to content = "{Binding ...}"

+0

Miałem to jako własność 'Content', gdy była to' Label', i to nie działało. – gregsdennis