2010-09-02 8 views
14

डब्ल्यूपीएफ में मैं डाटाग्रिड को एक तिथि संपत्ति बांधने की कोशिश कर रहा हूं, और यदि मेरे पास केवल डेटटाइम प्रारूप के रूप में जुड़ी संपत्ति है, तो मैं इसे डाटाग्रिड में सॉर्ट कर सकता हूं।डेटटाइम में वर्तमान संस्कृति के प्रारूप के साथ डेटटाइम नहीं दिख रहा है, लिस्ट व्यू

और यहां मुझे क्षेत्रीय तिथि दिखाना है, यदि उपयोगकर्ता क्षेत्र और भाषा सेटिंग्स बदलता है, तो एप्लिकेशन को संशोधित समय प्रारूप दिखाना चाहिए।

यहां समस्या आती है, जब तिथि स्ट्रिंग प्रारूप में होती है, तो यह क्षेत्र सेटिंग्स के अनुसार जूते पहनती है, लेकिन जब दिनांक डेटटाइम प्रारूप में बाध्य होता है तो तारीख को सही क्षेत्र सेटिंग्स के साथ दिखाने के बजाय अमेरिकी प्रारूप में डाफॉल्ट किया जाता है।

तो, अगर मैं स्ट्रिंग प्रारूप स्तंभ does not काम है, और अपने दिनांक समय प्रारूप में, यह क्षेत्रीय सेटिंग

उत्तर

26

है कि करने के लिए कनवर्ट करता है क्योंकि बाध्यकारी प्रणाली संस्कृति FrameworkElement.Language संपत्ति द्वारा परिभाषित का उपयोग करता है, से छंटाई है जो स्वचालित रूप से वर्तमान संस्कृति से मेल नहीं खाता है (जो थोड़ा मूर्खतापूर्ण आईएमओ है, लेकिन यह वही तरीका है ...)।

सौभाग्य से वहाँ इसके चारों ओर एक आसान तरीका है, तो आप सिर्फ अपने आवेदन स्थिर निर्माता में Language संपत्ति के लिए मेटाडाटा ओवरराइड करने के लिए की जरूरत है, as shown here:

public partial class App : Application 
{ 
    static App() 
    { 
     FrameworkElement.LanguageProperty.OverrideMetadata(
      typeof(FrameworkElement), 
      new FrameworkPropertyMetadata(
       XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag))); 
    } 
} 
+3

धन्यवाद लोट थॉमस, यह वही सटीक समाधान है जिसे मैं उम्मीद कर रहा था। लेकिन यह .NET Framework में एक बग नहीं है। – crazy9

+0

यह मदद करता है, लेकिन यह केवल हमें वहां के रास्ते का हिस्सा बनता है। डब्ल्यूपीएफ अब पता लगाता है कि जब मैं एन-जीबी जैसी एक अलग संस्कृति का उपयोग कर रहा हूं, लेकिन यह अभी भी क्षेत्र के प्रारूपों में बदलावों पर नहीं उठाता है (उदाहरण के लिए, मैंने अपनी मशीन पर वाई-एमएम-डीडी का उपयोग करने के लिए एन-यूएस बदल दिया, लेकिन ग्रिड अभी भी एमएम/डीडी/yyyy का उपयोग करें)। –

+0

यह अब मेरे डब्ल्यूपीएफ ऐप में प्रारूप को सही ढंग से प्रदर्शित करता है यानी एमएम/डीडी/वाईय से डीडी/एमएम/yyyy तक, लेकिन यह मेरे समय के एएम/पीएम भाग को छोड़ देता है जो मुझे चाहिए। मैं शोध रखता हूँ। – Thierry

2

WPF Application Framework (WAF) की स्थानीयकरण नमूना दिखाता है कि कैसे अपनी समस्या को हल करने के लिए।

+0

या तो मैं उसमें देख लूंगा, धन्यवाद। – crazy9

+0

यह उत्कृष्ट है। धन्यवाद! –

संबंधित मुद्दे