2011-11-04 4 views
3

ListViewItems를 사용하여 명시 적으로 채워지는 ListView가 있습니다. 대부분의 항목은 표시가 필요하고 다른 항목은 접혀 있어야합니다. 모든 항목의 높이가 같습니다.ListView - 스크롤 할 때 스크롤 막대 높이가 계속 변경됨

문제는 100 개의 항목이 있고 처음 60 개가 보이고 하단 40이 접힌 상태 일 때 스크롤 막대의 높이가 100 개의 항목이 모두 표시 상태이고 스크롤 막대의 높이가 그것이해야하는 것보다 적어진다. 그러나 60까지 스크롤 할 때 나머지 40은 접힌 상태이므로 스크롤 막대의 높이가 늘어나서 목록보기의 60 개 항목에 적합하게됩니다.

처음에는 가상화 때문일 수 있다고 생각했습니다. 그러나 나는 목록보기에 데이터를 바인딩하지 않았다. 나 또한 원하는 결과를주지 못하는 접힌 상태에 있어야하는 항목의 높이를 0으로 설정하려고했습니다.

내가 필요한 것은 60 개의 항목이 보이고 40 개의 축소 된 부분이있는 경우 스크롤 막대의 높이는 목록보기에서 60 개의 항목 만 기반으로하며 일정해야합니다. 달성 할 수 있습니까?

답변

2

가상화가 아니라고 결정한 이유가 무엇인지 확신 할 수 없습니다. 가상화 해제하십시오 :

<ListView VirtualizingStackPanel.IsVirtualizing="False" ... 
+0

나는 가상화로 인해 생각하지 않았기 때문에 http://social.msdn.microsoft.com/forums/en-US/wpf/thread/8727eb5b-03ae-449d-a7f0-3f0e71cee58f –

+0

일부 코드를 게시 할 수 있습니까? . – Tan

4

나는 정확히 같은 문제가 있었다, 그리고 대답은 여기에서 찾을 수 있습니다 : 얼마 Listbox scrollbar thumb changes size when content is variable height

목록 상자에 ScrollViewer.CanContentScroll="False"을 추가하고 스크롤은 수에 관계없이 일정한 높이를해야합니다 접힌 항목 중

그런데이 질문은 거의 2 살이지만 나중에 참조 할 수 있도록 남겨두고 싶습니다.

+0

+1 훌륭한 답변입니다. –