Установка вертикальной полосы прокрутки зависит от выбранного элемента в списке - PullRequest
0 голосов
/ 23 июня 2011

В моем маленьком приложении есть кнопка, по которой один раз нажимают, и выбирается пятый элемент в списке.

проблема в том, что он выходит за рамки списка, и я бы хотел, чтобы вертикальная полоса прокрутки скользила вниз, чтобы я мог видеть выбранный элемент.

Как я могу это сделать?

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>

C # код:

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

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

1 Ответ

2 голосов
/ 23 июня 2011

Используйте ListView.ScrollIntoView для достижения того, что вы хотите:

lst.ScrollIntoView(lst.SelectedItem);
...