2009-10-08 3 views
2

많은 항목이있는 정렬 된 트리보기가 있습니다. 새 항목을 추가 할 때 새로 추가 된 항목을 선택하여 화면에 표시하고 싶습니다. 예를 들어, 처음 10 개의 항목이 화면에 표시되고 새 항목이 20 번째 위치에 추가 된 경우보기가 변경되어 새로운 추가 된 항목이 표시됩니다 (화면의 첫 번째 항목, 마지막 항목 또는 중간 - 그것은 중요하지 않습니다). 일부 블로그 게시물을 읽은 후 선택 작업을 할 수 있습니다. 화면에 표시하는 것과 관련하여 원하는 기능을 수행하는 방법을 알려주십시오.새로 추가 된 항목에 초점을 둔 WPF TreeView

루카스 Glaz

답변

4

저자가 this article을 살펴보고 첨부 된 동작을 사용하는 방법을 보여줍니다. 이 동작으로, 당신은 XAML에서 모든 작업을 수행 할 수 있습니다

<TreeView.ItemContainerStyle> 
    <Style TargetType="{x:Type TreeViewItem}"> 
    <Setter 
     Property="local:TreeViewItemBehavior.IsBroughtIntoViewWhenSelected" 
     Value="True" 
     /> 
    </Setter> 
    </Style> 
    </TreeView.ItemContainerStyle> 

을 IsBroughtIntoViewWhenSelected가 연결된 속성입니다.

+0

솔루션을 제공해 주셔서 감사합니다. 가상화가 꺼지면 잘 작동합니다. 가상화가 켜져 있고 몇 가지 항목을 추가 할 때 스크롤을 조금씩 위아래로 움직이면 응용 프로그램이 일종의 루프에서 멈추는 것처럼 보입니다. 현재 선택된 항목이 위아래로 움직이므로 중지 할 수 없습니다. – GUZ

+0

다음 장소에서 가상화 문제에 대한 해결책을 찾았습니다. http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/31ea27c0-32bf-4fae-a806-204f06c198b8 – GUZ

0

당신이 이미 가지고있는 경우 TreeViewItem은 새로 추가 된 항목에 해당하는, 당신이 할 일은 yourItem.BringIntoView()를 호출하는 것입니다.

+1

mvvm 패턴을 사용할 때 어떻게 처리해야하며 TreeViewItems를 직접 처리하지 않습니까? – GUZ