2009-07-31 17 views
11

के भीतर नहीं आता है, मैं एक सिल्वरलाइट 3 ऐप विकसित कर रहा हूं और जब मैं किसी कैनवास में ऑब्जेक्ट जोड़ने का प्रयास करता हूं तो यह वास्तव में अजीब त्रुटि प्राप्त कर रहा है। मेरा कोड निम्नानुसार है:बच्चे। जोड़ें (आइटम) मान अपेक्षित सीमा

for (int i = 0; i < person.Children.Count; i++) 
{ 
    //Add children in same position as parent 
    Person child = person.Children[i]; 
    child.x_PositionTransform.X = person.x_PositionTransform.X; 
    child.x_PositionTransform.Y = person.x_PositionTransform.Y; 
    child.Click += new RoutedEventHandler(person_Click); 
    x_LayoutRoot.Children.Add(child); 
} 

पहली बार जब मैं इसका उपयोग करता हूं, तो यह अपेक्षा करता है। हालांकि, जब मैंने x_LayoutRoot.Children मारा। इस कोड का उपयोग करके बनाई गई किसी ऑब्जेक्ट ऑब्जेक्ट पर क्लिक करने के बाद (बच्चे) जोड़ें, मुझे एक ArgumentException मुझे बता रहा है कि "मान अपेक्षित सीमा में नहीं आता है।"

हालांकि, जब मैं x_LayoutRoot.Children में बच्चे को जोड़ने से पहले निम्नलिखित कोड जोड़ता हूं, तो समस्या गायब हो जाती है।

child.SetValue(Canvas.NameProperty, "child" + objCount++); 

ऐसा क्यों हो रहा है? क्या यह एक सिल्वरलाइट बग है, या (अधिक संभावना है) क्या मुझे कुछ याद आ रहा है?

+0

आप FrameworkElement.NameProperty इस्तेमाल कर सकते हैं Canvas.NameProperty –

उत्तर

24

मुझे लगता है कि मैंने इसका कारण पता लगाया है: मैं एक ही नाम के साथ कई व्यक्ति वस्तुओं को जोड़ रहा था। इसलिए, अगर भविष्य में किसी को भी यह समस्या है, तो सुनिश्चित करें कि आपके सभी ऑब्जेक्ट्स में अद्वितीय नाम हैं!

+0

के बजाय एक ही मुद्दा कई बार था और मैं अब NullReferenceExceptions करने के लिए सबसे संभावित कारण के रूप में डाल रहा हूँ एक बच्चे को जोड़ने के विभिन्न जोड़ सकते हैं एक '... बच्चे। जोड़ें (ओबीजे)' कॉल। – JeroenEijkhof

1
Person child = person.Children[i]; 
child.x_PositionTransform.X = person.x_PositionTransform.X; 
child.x_PositionTransform.Y = person.x_PositionTransform.Y; 
child.Click += new RoutedEventHandler(person_Click);   

child.SetValue(Canvas.NameProperty, "child" + objCount++); //! 

x_LayoutRoot.Children.Add(child); 

आप NameProperty से पहले

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