각 노드가 TreeNodeViewModel 인 Silverlight TreeView가 있습니다. TreeNodeViewModel의 속성은 Text, IsSelected, ImageUri 및 Parent입니다. 약 700-1000 개의 TreeView 항목을로드하고 있습니다.MVVM 패턴을 사용하는 Silverlight TreeView의 크기가 큽니다.
HierarchicalDataTemplate의 바인딩을 통해 TreeView를로드 한 후 IE 브라우저의 풋 프린트가 약 48,000kb에서 165,000kb로 증가하는 것으로 보입니다. 나는 ExpandView과 CollapseAll에 대한 바인딩을 가지고있는 TreeView 자체에 대해 ViewModel을 사용하고 있습니다. expand 명령을 사용하면 IE 풋 프린트가 거의 300,000kb까지 증가합니다. 트리가 완전히 확장되면 & 확장을 반복해도 풋 프린트가 증가하지는 않습니다. 즉, 모든 ViewModel이 작성되면 레벨이 해제 된 것처럼 보입니다.
제 질문은 약 800 개의 TreeView 항목을로드하는 경우 내 경우와 같이 크기가 커야한다는 것입니다. 많은 양의 데이터를로드하는 것으로부터 IE의 과도한 공간을 본 사람이 있습니까?
개발중인 SL 앱의 배경 : 하드웨어 장치 (일명 : 서버)는 독점 하드웨어이며 링크시스 라우터와 유사한 내장 웹 서버를 가지고 있습니다. 압축 된 구성 파일 (모델 엔터티)이 장치에로드되고 SL 응용 프로그램이 DataContractSerializer를 사용하여 압축 된 파일을 다운로드하고 압축을 풀어 역 직렬화합니다. 압축 된 파일은 약 1.75MB이고, 압축되지 않은 파일은 약 12.5MB입니다.
첫 번째 생각은 모델의 비 직렬화로 인해 IE 풋 프린트가 큽니다. 처음에 IE가 시작되면 풋 프린트는 약 7500kb이고 모델을 메모리에로드하면 최대 48,000kb가 실행됩니다.
모든 의견이나 제안은 대단히 감사하겠습니다.
다른 브라우저의 동작은 어떻습니까? – CaptainPlanet
노드에 이미지 속성이 있습니다.당신의 템플릿은 그것을 묶는'Image' 컨트롤을 포함하고 있습니까? 템플릿에서 제거하려고 했습니까? –
이 동작은 다른 브라우저에서도 동일합니다 .. – gcadmes