मुझे एक स्थिर संपत्ति के लिए एक WPF बाध्यकारी के साथ कुछ मुद्दों का सामना करना पड़ रहा है। मेरे आवेदन में ग्लोबल्स नामक एक कक्षा है जिसमें स्थिर संपत्ति यह एडिन है। यह ऑब्जेक्ट मुझे उपयोगकर्ता संपत्ति तक पहुंचने की अनुमति देता है जो मूल रूप से मैं अपने बाध्यकारी में उपयोग करना चाहता हूं। तो, मेरी XAML इस तरह दिखता है:StaticExtension मान को हल नहीं किया जा सकता
<TextBlock Text="{Binding Path=User.Name
, Source={x:Static Member=s:Globals.ThisAddIn}}" />
नाम स्थान रों निम्न पंक्ति द्वारा शीर्ष पर घोषित किया जाता है:
xmlns:s="clr-namespace:ConsoleApplication16.Model"
मैं कैसे का उल्लेख करने के विभिन्न तरीकों में से एक टन पाया एक्सएएमएल में स्थैतिक संपत्ति, लेकिन उनमें से कोई भी इस के अलावा काम नहीं करता, जो मेरे लिए सबसे तार्किक लगता है। मैंने पाया कुछ नमूने, पथ या सदस्य का उपयोग नहीं किया था।
कुछ परीक्षणों के बाद मुझे ऐसा करने का सही तरीका मिला, कक्षा और स्थैतिक संपत्ति को परिभाषित करने के लिए "x: स्टेटिक सदस्य" का उपयोग कर रहा है, जबकि पथ इस ऑब्जेक्ट के अंदर सही गुणों को परिभाषित करता है, जैसे कि सामान्य बाध्यकारी करेंगे।
हालांकि यह समाधान बिना किसी शिकायत के संकलित करता है, एक XAMLParseException सीधे मुझे बताता है कि स्टेटिक एक्सटेंशन एक्सटेंशन को गणना, स्थैतिक क्षेत्र या स्थैतिक संपत्ति के लिए हल नहीं किया जा सकता है।
वास्तव में किस प्रकार कि अगर यह एक अपवाद फेंकता है 'सही way' है? –
इसके अलावा आप 'पथ =' और 'सदस्य =' को छोड़ने में सक्षम होना चाहिए क्योंकि इससे संबंधित संरचनाओं को लागू करने वाले संबंधित रचनाकारों का आह्वान किया जाएगा। –
मैं आमतौर पर '{बाध्यकारी स्रोत = {x: स्टेटिक लोकल: MyStaticClass.SomeStaticProperty.PropertyName} 'का उपयोग करके स्थिर वर्ग/गुणों से जुड़ता हूं। बस सुनिश्चित करें कि आपके गुणों में 'get' /' set' निर्धारक हैं। उदाहरण के लिए, सुनिश्चित करें कि आप 'सार्वजनिक स्ट्रिंग PropertyName {get; सेट; } 'सार्वजनिक स्ट्रिंग प्रॉपर्टीनाम के बजाय;' – Rachel