各ノードがTreeNodeViewModelであるSilverlight TreeViewがあります。 TreeNodeViewModelのプロパティは、Text、IsSelected、ImageUri、およびParentです。私は約700から1000のTreeViewアイテムをロードしています。MVVMパターンを使用したSilverlight TreeViewのフットプリントが大きい
HierarchicalDataTemplateのバインディングを使用してTreeViewをロードした後、IEブラウザのフットプリントが約48,000kbから165,000kbに増加すると考えられます。私はViewModelをTreeView自体に使用しています。ツリービュー自体には、ExpandAllとCollapseAllのバインディングがあります。私がexpandコマンドを呼び出すと、IEのフットプリントはほぼ300,000kbにまで拡大し続けます。ツリーが完全に展開されたら、展開を繰り返して&が崩壊してもフットプリントは増加しません。つまり、すべてのViewModelが作成されると、レベルがオフになっているように見えます。
私の質問には、約800個のTreeViewアイテムをロードしている場合、足跡が私の場合と同じ大きさになるはずですか?膨大な量のデータをロードすることで、IEの足跡を見たことがある人はいますか?
私が開発しているSLアプリケーションの背景:ハードウェアデバイス(別名:サーバー)は、プロプライエタリハードウェアで、リンクスのルータに似た埋め込みWebサーバーを持っています。圧縮された設定ファイル(モデルエンティティ)がデバイスにロードされ、SLアプリケーションはDataContractSerializerを使用してそのファイルをダウンロードし、解凍して逆シリアル化します。圧縮されたファイルは約1.75MB、非圧縮は約12.5MBです。
私の最初の考えは、モデルの逆シリアル化のためにIEのフットプリントが大きかったということでした。最初にIEが起動すると、フットプリントは約7500kbで、モデルをメモリにロードすると最大48,000kbまで実行されます。
ご意見やご提案をいただければ幸いです。
他のブラウザでの動作はどうですか? – CaptainPlanet
ノードにはimageプロパティがあります。あなたのテンプレートには、それにバインドする 'Image'コントロールが含まれていますか?テンプレートから削除しようとしましたか? –
動作は他のブラウザでも同じです.. – gcadmes