2011-03-01 12 views
8

मुझे उम्मीद है कि कोई निर्भरता ऑब्जेक्ट्स और निर्भरता प्रॉपर्टीज की मेरी खोज जारी रखने के दौरान कुछ अप्रत्याशित व्यवहार को समझा सकता है।मैं निर्भरताप्रॉपर्टीज का उपयोग क्यों कर सकता हूं जो मेरे निर्भरता ऑब्जेक्ट पर पंजीकृत नहीं हैं?

को देखते हुए निम्नलिखित सरल वर्ग:

class SomeClass : DependencyObject { 
    } 

मैं खुशी से लिख सकते हैं कोड जैसे:

public static void Test() { 
    SomeClass a = new SomeClass(); 
    Console.WriteLine(a.GetValue(EllipseGeometry.RadiusXProperty)); 
    a.SetValue(EllipseGeometry.RadiusXProperty, 3.24); 
    Console.WriteLine(a.GetValue(EllipseGeometry.RadiusXProperty)); 
} 

जो निम्नलिखित उत्पादन देता है:

0 
3.24 

वहाँ में कुछ भी नहीं है मेरी कक्षा जिसकी एलीप्स जीमेट्री कक्षा से कोई संबंध है, और मैंने अपनी कक्षा को मालिक के रूप में नहीं जोड़ा है EllipseGeometry.RadiusXProperty संपत्ति या रजिस्टरAttached() तो यह क्यों काम करता है? ऐसा लगता है कि फ्रेमवर्क को एक त्रुटि उठाने के बिना मैं अपने डीओ में किसी भी डीपी को खुशी से जोड़ सकता हूं।

क्या कोई और इस अजीब व्यवहार को ढूंढता है? मैंने "इस वस्तु के साथ इस संपत्ति को पंजीकृत नहीं किया है" के आधार पर अपवाद के कुछ रूपों की उम्मीद की होगी ... मैं किसी भी तरह की गवाही की सराहना करता हूं कि इस तरह से डीओ को जोड़ने के लिए कोई विशेष उपयोग है या नहीं, क्योंकि मैं इस व्यवहार की अनुमति देने का उद्देश्य नहीं देख सकता है।

बहुत धन्यवाद, मैट

+0

मुझे लगता है कि 'SomeClass' का मतलब' टेस्टक्लास '(या इसके विपरीत) होना है? –

+0

क्या EllipseGeometry.RadiusXProperty एक संलग्न संपत्ति है? –

+0

हाय स्टीवन, आपको सही लगता है और मेरे पास एक प्रतिलिपि और पेस्ट त्रुटि थी। मैंने टेस्टक्लास को कुछ क्लास में बदल दिया है। देर हो चुकी है, मैं और क्या कह सकता हूं। उत्तर देने के लिए समय लेने के लिए धन्यवाद –

उत्तर

1

यह व्यवहार आप संलग्न गुण का उपयोग करने की अनुमति देता है। इसके बिना, उदाहरण के लिए आप टेक्स्टबॉक्स पर ग्रिड का उपयोग कैसे कर सकते हैं।

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

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