Tôi đang phát triển ứng dụng Silverlight 3 và nhận được lỗi này thực sự lạ khi tôi cố thêm đối tượng vào Canvas. Mã của tôi như sau:Trẻ em.Thêm (mục) giá trị không nằm trong phạm vi dự kiến
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);
}
Lần đầu tiên tôi sử dụng, nó hoạt động như mong đợi. Tuy nhiên, khi tôi nhấn x_LayoutRoot.Children.Add (con) sau khi nhấp vào một đối tượng Person đã được tạo bằng cách sử dụng mã này, tôi nhận được một ArgumentException nói với tôi rằng "Giá trị không nằm trong phạm vi dự kiến."
Tuy nhiên, khi tôi thêm mã sau đây trước khi thêm con vào x_LayoutRoot.Children, sự cố sẽ biến mất.
child.SetValue(Canvas.NameProperty, "child" + objCount++);
Tại sao điều này lại xảy ra? Đây có phải là lỗi Silverlight hay không (nhiều khả năng) tôi chỉ thiếu một thứ gì đó?
bạn có thể sử dụng FrameworkElement.NameProperty thay vì Canvas.NameProperty –