WPF

2012-06-08 13 views
8

में कस्टम डेटटाइम स्ट्रिंगफॉर्मेट मुझे अपने बाध्यकारी में काम करने के लिए मेरा कस्टम डेटटाइम स्ट्रिंग प्रारूप नहीं मिल सकता है। मैं प्रारूप "mmmm, yyyy" होना चाहता हूं (उदाहरण के लिए "जून, 2012")।WPF

निम्नलिखित काम नहीं करता है। मुझे एक लघु तिथि प्रारूप मिलता है (एम/डी/yyyy)।

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

मैंने कनवर्टर का उपयोग करने पर विचार किया है, लेकिन मैं एक शुद्ध एक्सएएमएल दृष्टिकोण पसंद करता हूं।

संपादित करें:

स्पष्टता के लिए, मैं प्रकार DateTime की निर्भरता संपत्ति Date के साथ एक Window है। मेरे एक्सएएमएल में, मैंने विंडो 'हिविंडो' नाम दिया है।

संपादित करें 2:

मैं अपने वास्तविक कोड मुड़कर देखा, और मैं एक Label, नहीं एक TextBlock था। मैंने इसे टेक्स्टब्लॉक में बदल दिया और यह ठीक काम करता है।

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

किसी को भी पता है क्यों यह Label साथ काम नहीं करता?

धन्यवाद।

+0

इस को छोड़कर यह होना चाहिए '{0: MMMM \, yyyy} मेरे लिए काम किया (')। आपकी "तिथि" संपत्ति के बारे में कुछ? क्या यह 'डेटटाइम' के बजाय 'स्ट्रिंग' लौटने का अवसर है? – CodingGorilla

+0

मैं स्थिति को स्पष्ट करने के लिए संपादित करूंगा ... – gregsdennis

उत्तर

11

ContentControls एक ContentStringFormat property जो मूल स्वरूपण को ओवरराइड करता है।

(जब मैं अपने प्रश्न देखा मैं इस उम्मीद समस्या वास्तव में होना करने के लिए, लेकिन पहली बार में एक TextBlock आश्चर्य हुआ)

+0

मुझे उस संपत्ति के बारे में पता नहीं था। बहुत बढ़िया धन्यवाद। – gregsdennis

2

आपका महीने अपरकेस में होने की जरूरत है:

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

संपादित करें:

लेबल समस्या शायद इसलिए है क्योंकि लेबल सामग्री है, पाठ नहीं।

बदलें पाठ = "{बाइंडिंग ...}" सामग्री के लिए = "{बाइंडिंग ...}"

+0

जब यह 'लेबल' था, तो यह' सामग्री 'संपत्ति के रूप में था, और यह काम नहीं कर रहा था। – gregsdennis