2013-06-21 3 views
0

인터넷에서이 문제를 잘 알아낼 수없는 것 같아서 여러분에게 묻습니다. ItemsContainerGenerator를 사용하는 것의 차이점은 컨테이너의 Recycle을 호출 할 때와 사용하지 않을 때의 사용자 지정 Panel의 측정 방법입니다.ItemsContainerGenerator 및 재활용 관련 문제

제 생각에 Generator는 새 컨테이너를 만들고 GenerateNext 메서드가 호출되면 데이터 항목에 연결합니다. Generator는 항상 GenerateNext 메서드에서 해당 컨테이너에 항목을 연결합니까? 컨테이너를 항목에 항상 연결하면 즉, 이미 생성되었거나 다시 실현 된 컨테이너를 데이터 항목에 연결합니까?

recycle() 메서드를 호출하여 컨테이너를 재활용하기 시작하면 어떻게됩니까? 발전기가 컨테이너와 아이템을 항상 연결시킬 수 있습니까?

스크롤링 성능이 사용에 따라 다르므로이 질문을드립니다. 생성기가 항목을 컨테이너에 연결하면 DataContext/Binding을 새로 고치고 스크롤하는 것이 조금 지연 될 것입니다. 재활용 메서드를 사용하여 생성자가 Bindings를 새로 고치지 않으면 스크롤이 매우 원활하게 실행됩니다.

답변

0

재활용 가상화 모드를 사용할 때 컨테이너는 재사용되므로 필요에 따라 원본 데이터 개체에 연결됩니다. 따라서 컨테이너 템플리트에 데이터 (또는 유형 또는 특성)에 대한 시각적 트리를 다시 작성하는 요소가 포함 된 경우 변경됩니다. 성능을 향상시키기 위해 가능한 한 데이터 변경 템플릿과 독립적으로 생성하도록 제안 할 수 있습니다. 시각적 트리를 최소화하십시오. 또한 ClearContainer 메서드를 수정하여 데이터에 의존하지 않는 일부 전역 값을 다시 설정하지 못하게 할 수 있습니다.이 메서드는 일부 큰 부모 컨트롤, 설정 - 일반적으로 상수이지만 변경시 시각적 트리에 영향을주는 항목 일 수 있습니다.