Wpf 无法访问元素的所有子元素?

Wpf 无法访问元素的所有子元素?,wpf,windows-phone-8.1,windows-phone,Wpf,Windows Phone 8.1,Windows Phone,因此,我将向贴图控件添加一些元素,如下所示 foreach (var res in results) { if (res.geometry.location != null) { var pushpin = new Image(); pushpin.Name = "a"; BasicG

因此,我将向贴图控件添加一些元素,如下所示

  foreach (var res in results)
            {
                if (res.geometry.location != null)
                {
                    var pushpin = new Image();
                    pushpin.Name = "a";
                     BasicGeoposition bs = new BasicGeoposition { Latitude = res.geometry.location.lat, Longitude = res.geometry.location.lng };
                    pushpin.Source = new BitmapImage(uri);
                    pushpin.Height = 50;
                    pushpin.Width = 50;
                    myMap.Children.Add(pushpin);
                    MapControl.SetLocation(pushpin, new Geopoint(bs));


                }

            }
现在,我想从控件中删除元素名“a”,我使用以下代码

    int c = myMap.Children.Count;
            for (int i = 0; i < c; i++)
            {

                if(myMap.Children.ElementAt(i) is Image)
                {
                    var z = myMap.Children.ElementAt(i) as Image;
                    if(z.Name.Equals("a"))
                        {
                        myMap.Children.Remove(myMap.Children.ElementAt(i));
                    }


                }


            }
int c=myMap.Children.Count;
对于(int i=0;i
但总是有一些元素没有被删除,例如子元素的计数是21,但循环只循环了10次。
我怎样才能解决这个问题

尝试反向循环,这样你就不会在循环过程中弄乱你的收藏

int c = myMap.Children.Count - 1;
for (int i = c; i >= 0; i--)
{
    if (myMap.Children.ElementAt(i) is Image)
    {
        var z = myMap.Children.ElementAt(i) as Image;
        if(z.Name.Equals("a"))
        {
            myMap.Children.Remove(myMap.Children.ElementAt(i));
        }
    }
}

向后循环。删除元素1时,元素2变为1,元素3变为2,依此类推。所以现在你的循环测试元素2,它不再是原来的2。请使用正确的标记。这个问题肯定与当前的所有标签无关。