2011-11-16 10 views
5

मैं सिल्वरलाइट 4.
मैं निम्नलिखित स्थिति है में TextBlock बाइंडिंग के साथ कुछ मज़ा आ रहा किया गया है:सिल्वरलाइट 4 में टेक्स्टब्लॉक में बग या फ़ीचर?

<TextBlock Text="{Binding Date, StringFormat=g}" /> 
<TextBlock> 
    <Run Text="{Binding Date, StringFormat=g}"/> 
<TextBlock> 

कहाँ Date प्रकार System.DateTime की संपत्ति है।
मैंने आवेदन की वर्तमान संस्कृति को नहीं बदला है।

मेरी मशीन की संस्कृति बुल्गारिया (बीजी-बीजी) है। उदाहरण के लिए:

TextBlock 1: 2011/11/16 12:49
TextBlock 2: 16.11.2011 г. 12:49 ч।

दिलचस्प बात यह है कि पहली TextBlock दिनांक और समय en-US संस्कृति (या डिफ़ॉल्ट अपरिवर्तनीय एक) है, जबकि दूसरा एक bg-बीजी संस्कृति का उपयोग करता है का उपयोग कर प्रारूप है। बात सिल्वरलाइट TextBlock नियंत्रण के लिए MSDN documentation के बाद से भी अजनबी पाने का कहना है:

InlineCollection एक TextBlock वस्तु तत्व के भीतर पाठ के रूप में XAML से बनाया गया है तो या अगर यह पाठ संपत्ति की स्थापना द्वारा बनाई गई है, InlineCollection शामिल एक एकल रन जिसमें उस पाठ को शामिल है।

क्या मुझे यहां कुछ याद आ रहा है या इसे सिल्वरलाइट 4 में बग माना जा सकता है?

+1

अजीब के लिए ठीक से काम करता व्याख्या नहीं करता। क्या आपने देखा है कि रन क्लास की टेक्स्ट प्रॉपर्टी निर्भरता प्रॉपर्टी नहीं है? मैं सोच रहा हूं कि इस स्थिति में बाध्यकारी कैसे काम करता है। मैंने दोनों बाइंडिंग में एक कनवर्टर लगाने की कोशिश की है और रन बाध्यकारी कनवर्ट विधि को पारित संस्कृति पैरामीटर नल है। मैं कहूंगा कि यह एक बग है – Bruno

उत्तर

2

हमने पाया है कि आपको यह सुनिश्चित करने की आवश्यकता है कि Language नियंत्रण की स्थिति को सही ढंग से भाषा सेटिंग्स का सम्मान करने के लिए सेट किया गया है। हमारे मामले में यह मुद्रा प्रतीकों के लिए था, लेकिन मुझे लगता है कि तारीखों के लिए भी यही समस्या होती है।

टिम हेउयर के पास blog post है जिसका शीर्षक "सिल्वरलाइट में स्ट्रिंगफॉर्मेट और करंटकल्चर" है।

समाधान दृश्य निर्माता के लिए निम्न पंक्ति जोड़ने के लिए है:

this.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name); 

यही कारण है कि यह वास्तव में <Run>

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