C# C Windows Phone从代码中访问DataTemplate内的图像控件

C# C Windows Phone从代码中访问DataTemplate内的图像控件,c#,image,windows-phone-8,datatemplate,longlistselector,C#,Image,Windows Phone 8,Datatemplate,Longlistselector,在LongListSelector数据模板中有一个名为imgGameList的图像控件,我想从代码中访问该控件,但在代码中找不到该控件 带有图像控件的我的LongListSelector: 我尝试访问图像控件的原因是因为它存在内存问题,并且希望对其应用gleb.kudr fix: 我希望有人能帮助我。谢谢。谢谢。你能告诉我这是否比用户pm_2发布的修复程序更有效吗:我看到了同样的方法谢谢。它工作正常,我现在可以访问我的图像控件,但是当我将图像源设置为null时,它只是我的LongListSele

在LongListSelector数据模板中有一个名为imgGameList的图像控件,我想从代码中访问该控件,但在代码中找不到该控件

带有图像控件的我的LongListSelector:

我尝试访问图像控件的原因是因为它存在内存问题,并且希望对其应用gleb.kudr fix:


我希望有人能帮助我。谢谢。

谢谢。你能告诉我这是否比用户pm_2发布的修复程序更有效吗:我看到了同样的方法谢谢。它工作正常,我现在可以访问我的图像控件,但是当我将图像源设置为null时,它只是我的LongListSelector中第一个被删除的图像,你知道为什么吗?。例如:我的LongListSelector中显示了20个图像,当我按下一个按钮时,我希望删除所有图像以释放内存,但当我尝试此操作时,这只是第一个被删除的图像,而不是19个其他图像,我希望您理解我试图做什么,最后我希望在不使用图像时从图像中释放内存。谢谢。您应该遍历列表中的所有项目,并在每个项目上单独调用SearchVisualTree。如何在selection_changed事件中获取listitem。
    public FrameworkElement SearchVisualTree(DependencyObject targetElement, string elementName)
    {
        FrameworkElement res = null;
        var count = VisualTreeHelper.GetChildrenCount(targetElement);
        if (count == 0)
            return res;

        for (int i = 0; i < count; i++)
        {
            var child = VisualTreeHelper.GetChild(targetElement, i);
            if ((child as FrameworkElement).Name == elementName)
            {
                res = child as FrameworkElement;
                return res;
            }
            else
            {
                res = SearchVisualTree(child, elementName);
                if (res != null)
                    return res;
            }
        }
        return res;
    }
Image image = SearchVisualTree(listItem, "imgGameList") as Image;