1

いくつかの背景

(Silverlight Toolkit から) DataForm の EditTemplate を設定すると、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>

CodePlexの問題をオープンしました。問題には、事例を説明するプロジェクトを含む添付ファイルがあります。

だから、私の質問は

他の誰かがこの問題に遭遇しましたか? さらに重要なことに、誰かが回避策を知っていますか? この DataForm を強制的にガベージ コレクションするにはどうすればよいですか?

4

2 に答える 2

2

参考までに、この問題を懸念している人へ... MS はこれに対する修正をリリースしました。

Silverlight 4 サービス リリース

于 2010-09-26T19:09:40.000 に答える
1

この問題は DataForm コントロールに固有のものではなく、実際には Silverlight 4 ランタイムの問題であることが判明しました。DataTemplate を使用するすべての組み込みコントロールとユーザー コントロールには、このスレッドで詳しく説明されているように、この問題があります。Tim Heuer (Silverlight プログラム マネージャー) は、このスレッドに対応しており、さまざまな結果が得られる可能性のある回避策を提案しています。彼は、彼らがすでにテストに入っている修正を持っていると述べているので、アップデートが比較的早くリリースされることを願っています.

于 2010-06-02T13:17:49.743 に答える