2010-07-06 6 views
0

사용하지 않는 가상화 목록 컨트롤의 Visibility - 속성 만 Collapsed으로 설정하는 것이 적절합니까?ViewModel에 바인딩 된 여러 목록 컨트롤

나는 IEnumerable<SomeType>을 구현하는 ViewModel을 가지고 있으며 (마크 업에 선언 된) ViewModel에 직접 바인딩하는 가상화 목록 컨트롤이 있습니다. 한 번에 항상 목록 컨트롤 중 하나만 표시됩니다.

사용하지 않는 목록의 Visibility만을 축소로 설정하는 것이 적절합니까?이 경우 보이지 않는 목록 컨트롤에 대해 항목이 생성되지 않거나 ItemsSource 속성을 더 명확하게 설정해야합니까?

두 개 이상의 컨트롤이 컬렉션 변경 (INotifyCollectionChanged)을 추적하지만 IMO 오버 헤드가 무시할 수 있기 때문에 오버 헤드가 있음을 알고 있습니다. 내가 맞습니까?

답변

1

정확합니다. 컬렉션을 지우면 혼자 남겨 두는 것보다 더 큰 성과를 낼 가능성이 있습니다. 컨트롤은 바운드 소스 컬렉션에서 Items 컬렉션을 채우고 핸들러를 채우지 만 컬렉션에 바인딩하는 데 훨씬 느린 자식 요소의 렌더링과 생성은 거의 없습니다. Collapse로 설정되면 렌더링 엔진의 관점에서 볼 때 존재하지 않습니다.

관련 문제