2010-10-05 15 views
41

मैं एक स्थिर वर्ग की संपत्ति में टेक्स्टब्लॉक टेक्स्ट बांधना चाहता हूं। जब भी स्थैतिक वर्ग में संपत्ति मूल्य बदलता है, तो उसे अन्य विंडो या कस्टम नियंत्रण पर टेक्स्टब्लॉक को प्रतिबिंबित करना चाहिए।स्थिर वर्ग संपत्ति के लिए बाध्यकारी

उत्तर

54

आप x:Static मार्कअप एक्सटेंशन का उपयोग कर किसी स्थिर वर्ग पर किसी भी संपत्ति से जुड़ सकते हैं, लेकिन यदि आप किसी भी परिवर्तन ट्रैकिंग को लागू नहीं करते हैं, तो यह ताज़ा करने पर त्रुटियों का कारण बन सकता है!

<TextBlock Text="{Binding Source={x:Static sys:Environment.MachineName}}" /> 
+1

यही है, संपत्ति सेटर को ठीक से ताज़ा करने के लिए, किसी भी बाध्य संपत्ति की तरह, PropertyChanged ईवेंट को बढ़ाने की आवश्यकता है। –

+0

कोड कोड स्निपलेट काम करने के लिए आपको "xmlns: sys =" clr-namespace: system; assembly = mscorlib "को अपने टैग में जोड़ने की आवश्यकता है, अन्यथा नामस्थान" sys "को परिभाषित नहीं किया गया है – DonGru

+0

@AlexPaven: जब इनका आह्वान किया जाता है प्रॉपर्टी चेंज इवेंट, हम 'प्रेषक' पैरामीटर के रूप में क्या भेजते हैं? शून्य? –

17

यह मेरे लिए काम किया है:

Text="{Binding Source={x:Static MyNamespace:MyStaticClass.MyProperty}, Mode=OneWay}" 

Mode=OneWay बिना मैं एक अपवाद हो गया।

+0

यह विधि तकनीकी रूप से मेरे लिए एक अजीब त्रुटि के साथ काम करती है। जब मैं इस तरह एक स्निपेट का उपयोग करता हूं तो यह कहता है कि मेरी स्थैतिक कक्षा नामस्थान का हिस्सा नहीं है (जो यह है) जो मुझे 'xaml' डिजाइनर पर "अमान्य मार्कअप" स्क्रीन। अजीब बात यह है कि जब मैं प्रोग्राम चलाता हूं तो यह त्रुटि नहीं करता है। केवल इतना ही नहीं, लेकिन त्रुटि दिखा रहे स्निपेट सही काम कर रहा है। कोई विचार यह क्या हो सकता है? – ARidder101

+0

@ ARIDder101 कोई विचार नहीं। माफ़ कीजिये। यह थोड़ी देर हो गया है क्योंकि मैंने इसका सामना किया था। लेकिन यह इंटेलिजेंस में बस कुछ बग हो सकता है। – NoOne

15

उन लोगों के लिए जो नेस्टेड स्थैतिक कक्षाओं का उपयोग स्थिरांक को व्यवस्थित/पृथक करने के लिए करते हैं। आप नेस्ट स्थिर वर्गों में बाध्य करने के लिए की जरूरत है, ऐसा लगता है आप नेस्टेड वर्ग तक पहुँचने के लिए डॉट ऑपरेटर के बजाय एक प्लस (+) ऑपरेटर का उपयोग करने की आवश्यकता है:

{Binding Source={x:Static namespace:StaticClass+NestedStaticClasses.StaticVar}} 

उदाहरण:

public static class StaticClass 
    { 
     public static class NestedStaticClasses 
     { 
      public static readonly int StaticVar= 0; 

     } 
    } 
(।)
+0

नेस्टेड कक्षाओं का उपयोग करने के तरीके के लिए धन्यवाद। – Herman

+0

इससे मुझे बहुत मदद मिलती है, धन्यवाद! आधिकारिक दस्तावेज के लिए कोई लिंक कहां वर्णित है? – psulek

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