2009-10-08 7 views
2

J'ai une vue arborescente triée avec beaucoup d'éléments. Lorsque j'ajoute un nouvel élément, j'aimerais que l'élément nouvellement ajouté soit sélectionné et affiché à l'écran. Par exemple: si je vois les 10 premiers éléments à l'écran et que le nouvel élément est ajouté en 20ème position, alors la vue doit changer pour présenter le nouvel élément ajouté (il peut s'agir du premier sur l'écran, le dernier ou en le milieu - ça n'a pas d'importance). Je suis en mesure d'obtenir une sélection de travail après avoir lu quelques articles de blog. Aidez-moi s'il vous plaît à trouver comment réaliser la fonctionnalité désirée concernant montrer sur l'écran.WPF TreeView se concentre sur l'élément nouvellement ajouté

Lukasz Glaz

Répondre

4

Je suggère que vous jetez un oeil à this article où l'auteur montre comment utiliser un comportement ci-joint. Avec ce comportement, vous pouvez tout faire en XAML:

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

Où IsBroughtIntoViewWhenSelected est une propriété attachée.

+0

Merci pour la solution. Cela fonctionne très bien lorsque la virtualisation est désactivée. Lorsque la virtualisation est activée et que j'ajoute quelques éléments, défiler un peu vers le haut et vers le bas, l'application semble se bloquer dans une sorte de boucle: l'élément actuellement sélectionné monte et descend et il n'est pas possible de l'arrêter. – GUZ

+0

J'ai trouvé la solution au problème avec la virtualisation à l'endroit suivant: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/31ea27c0-32bf-4fae-a806-204f06c198b8 – GUZ

0

Si vous avez déjà obtenu le TreeViewItem correspondant à votre élément nouvellement ajouté, tout ce que vous avez à faire est d'appeler yourItem.BringIntoView().

+1

Comment l'utiliser lorsque j'utilise mvvm pattern et que je ne gère pas directement TreeViewItems? – GUZ

Questions connexes