2012-06-08 30 views
8

Tôi không thể có được định dạng chuỗi DateTime tùy chỉnh để hoạt động trong ràng buộc của mình. Tôi muốn định dạng là "mmmm, yyyy" (ví dụ: "tháng 6 năm 2012").CustomformTime stringformat trong WPF

Các mục sau không hoạt động. Tôi có định dạng ngày ngắn (m/d/yyyy).

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

Tôi đã xem xét sử dụng trình chuyển đổi nhưng tôi thích phương pháp XAML thuần túy hơn.

Edit:

Để rõ ràng, tôi có một Window với một tài sản phụ thuộc Date loại DateTime. Trong XAML của tôi, tôi đã đặt tên cho cửa sổ là 'Thiswindow'.

Chỉnh sửa 2:

Tôi quay lại nhìn mã thực tế của tôi, và tôi đã có một Label, không phải là một TextBlock. Tôi đã thay đổi nó thành TextBlock và nó hoạt động tốt.

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

Bất kỳ ai biết tại sao nó không hoạt động với Label?

Cảm ơn.

+0

này đã làm việc cho tôi (ngoại trừ nó nên được '{0: MMMM \, yyyy}'). Một cái gì đó về tài sản "Ngày" của bạn? Có phải ngẫu nhiên trả về một 'chuỗi' thay vì' DateTime'? – CodingGorilla

+0

Tôi sẽ chỉnh sửa để làm cho tình hình rõ ràng hơn ... – gregsdennis

Trả lời

11

ContentControls có một ContentStringFormat property mà đè định dạng ban đầu.

(Khi tôi thấy câu hỏi của bạn tôi nghĩ đây chỉ là vấn đề thực sự nhưng rất ngạc nhiên khi tìm thấy một TextBlock lúc đầu)

+0

Tôi không biết về tài sản đó. Tuyệt vời cảm ơn bạn. – gregsdennis

2

tháng của bạn cần phải được viết hoa:

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

EDIT:

Vấn đề Label có lẽ là bởi vì Label có nội dung, không văn bản.

Change Text = "{Binding ...}" để Content = "{Binding ...}"

+0

Tôi đã có nó như là một thuộc tính 'Nội dung' khi nó là một' Nhãn', và nó không hoạt động. – gregsdennis

Các vấn đề liên quan