Silverlight DataForm内存泄漏

时间:2010-05-28 20:28:03

标签: silverlight memory-leaks silverlight-4.0 silverlight-toolkit dataform

一些背景

我注意到设置DataForm的DataTemplate(来自Silverlight Toolkit)会导致DataForm不被垃圾回收。因此,DataForm的父控件也不能被垃圾收集,导致非常大的内存泄漏。

这是一些演示案例的XAML。

    <toolkit:DataForm HorizontalAlignment="Stretch" Margin="10" VerticalAlignment="Stretch">
        <toolkit:DataForm.EditTemplate>
            <DataTemplate>
                <toolkit:DataField Label="Dummy Binding:">
                    <TextBox Text="{Binding DummyBinding, Mode=TwoWay}" />
                </toolkit:DataField>
            </DataTemplate>
        </toolkit:DataForm.EditTemplate>
    </toolkit:DataForm>

我打开了issue on CodePlex。 isssue有一个附件,其中project表明了这种情况。

所以,我的问题是

还有其他人遇到过这个问题吗?更重要的是,有没有人知道任何变通方法?如何强制将此DataForm垃圾收集?

2 个答案:

答案 0 :(得分:2)

仅供参考,对于任何关心此问题的人...... MS已经解决了这个问题。

Silverlight 4 Service Release

答案 1 :(得分:1)

事实证明,此问题并非特定于DataForm控件,而且它实际上是Silverlight 4运行时的问题。使用DataTemplate的所有内置控件和用户控件都存在此问题,正如this thread中更详细讨论的那样。 Tim Heuer(Silverlight项目经理)对该主题做出了响应,并提出了一种可能的混合结果解决方法。他确实提到他们已经有一个修复程序进入测试,所以希望更新应该很快发布。