2011-04-07 16 views
8

MSDN - Panel.InternalChildren Property के अनुसार:डब्ल्यूपीएफ पैनल। बच्चे बनाम पैनल। आंतरिक बच्चे - क्या अंतर है?

क्लासेस कि Panel से प्राप्त कर रहे इस संपत्ति का उपयोग करना चाहिए, बजाय Children संपत्ति, इस तरह के MeasureCore रूप और ArrangeCore आंतरिक ओवरराइड के लिए।


तो, यह वास्तव में एक 2 हिस्सा सवाल यह है:

  1. तो मैं अपने ही, FooPanel, जो Panel से निकला है की एक पैनल बनाने के लिए, मैं MeasureCore ओवरराइड नहीं कर पा रहे या ArrangeCore। मुझे यकीन नहीं है कि वह बयान क्यों है। हालांकि, मैं MeasureOverride और ArrangeOverride ओवरराइड कर सकता हूं। तो, मुझे आश्चर्य है कि मुझे अभी भी इन 2 विधियों के लिए InternalChildren संपत्ति का उपयोग करने की आवश्यकता है। Children संपत्ति और InternalChildren संपत्ति के बीच वास्तविक अंतर

  2. क्या है?

उत्तर

9
  1. आप MeasureOverride और ArrangeOverride ओवरराइड होगा, कि दस्तावेज में एक गलती है, या आंतरिक माइक्रोसॉफ्ट कर्मचारियों के लिए लक्षित किया जाना चाहिए। MeasureCore और ArrangeCore को फ्रेमवर्क एलिमेंट द्वारा सील कर दिया गया है, ताकि आप उन्हें ओवरराइड नहीं कर सकें।

  2. बच्चों की संपत्ति सार्वजनिक है और केवल आंतरिक चिल्ड्रेन को कॉल करती है, जो संरक्षित है। तो शायद यह सुरक्षित है, क्योंकि बच्चों को रेखांकित किया जाएगा।

MSDN अन्यथा (http://msdn.microsoft.com/en-us/library/ms754152.aspx) का कहना है, लेकिन दस्तावेज़ गलत है। (प्रयोग परावर्तक कि बच्चे के कार्यान्वयन बस InternalChildren कॉल को देखने के लिए)

+0

+1, मैं सिर्फ, dotPeek साथ कोड को देखा देखते हैं। – RichardOD

+0

बच्चों और internalchildren हैं समकक्ष –

+0

या हम स्रोत को देखते हैं: http://referencesource.microsoft.com/#PresentationFramework/src/Framework/System/Windows/Controls/Panel.cs#171 –

1

संपादित करें: के रूप में ठीक किया CodeNaked - MSDN डॉक्स तथ्य गलत कर रहे हैं। आंतरिक बच्चे और बच्चे एक जैसे हैं। जबकि InternalChildren कि बाध्यकारी डेटा के माध्यम से जोड़ा गया था बच्चों (जब पैनल ItemsPanelTemplate है)

"बच्चों तत्वों है कि बच्चे के संग्रह का प्रतिनिधित्व करता है शामिल हैं


बच्चे, सिर्फ बच्चों कि नियमित रूप से जोड़े गए हैं पैनल शामिल है। InternalChildren बच्चों की सामग्री संग्रह और डेटा बाइंडिंग द्वारा उत्पन्न किए गए सदस्यों की सामग्री का प्रतिनिधित्व करता है। दोनों यूआईएलमेंट के माता-पिता पैनल में होस्ट किए गए बाल तत्वों का चयन करते हैं।"

पेज़ॉल्ड की किताब है, जहां संयोग से वह MeasureOverride और ArrangeOverride लेकिन InternalChildren साथ उपयोग करता है में बनाम InternalChildren बच्चे के बारे में पढ़ने के बाद http://msdn.microsoft.com/en-us/library/ms754152.aspx

+2

क्षमा करें, लेकिन दस्तावेज़ सही नहीं हैं। परावर्तक का उपयोग करना , आप 'बच्चों' के कार्यान्वयन को देख सकते हैं जो 'सार्वजनिक UIElementCollection बच्चे {{इसे वापस लौटाएं। आंतरिक बच्चे;}}'। तो जब तक वहां न हो कुछ वूडू चल रहा है, वे वही हैं। – CodeNaked

+0

मैं सही खड़ा हूँ। जैसे ही वोट-लॉक उठाया जाता है, मैं वोट दूंगा। कुछ नया सीखा, धन्यवाद! –

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