2011-06-23 3 views
0

Dans ma petite application, il y a un bouton qui est cliqué une fois, le cinquième élément de la liste étant sélectionné. Le problème est qu'il est hors de la portée ListView et je voudrais que la barre de défilement verticale glisser vers le bas pour que je puisse voir l'élément sélectionné.Définir la position de la barre de défilement verticale dépend de l'élément sélectionné dans la liste

Comment puis-je faire cela?

enter image description here

XAML:

<StackPanel> 
    <Button Click="Button_Click">Find number 5</Button> 
    <ListView x:Name="lst" ScrollViewer.VerticalScrollBarVisibility="Visible" Height="50"> 
     <ListView.Items> 
      <ListViewItem>1</ListViewItem> 
      <ListViewItem>2</ListViewItem> 
      <ListViewItem>3</ListViewItem> 
      <ListViewItem>4</ListViewItem> 
      <ListViewItem>5</ListViewItem> 
      <ListViewItem>6</ListViewItem> 
      <ListViewItem>7</ListViewItem> 
     </ListView.Items> 
    </ListView> 
</StackPanel> 

code C#:

public partial class Window2 : Window 
{ 
    public Window2() 
    { 
     InitializeComponent(); 
    } 

    private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     ((ListViewItem)lst.Items[4]).IsSelected = true; 
    } 
} 

Répondre

2

Utilisez ListView.ScrollIntoView pour atteindre ce que vous voulez:

lst.ScrollIntoView(lst.SelectedItem); 
+0

Rien que génial !! Merci – Erez

Questions connexes