设置垂直滚动条位置取决于列表中的选定项目

时间:2011-06-23 09:25:00

标签: .net wpf events triggers scrollbars

在我的小应用程序中有一个按钮,一旦点击,列表视图中的第五个项目就会被选中。

问题是它超出了listview范围,我希望垂直滚动条向下滑动到所以我可以看到所选项目。

我该怎么做?

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 个答案:

答案 0 :(得分:2)

使用ListView.ScrollIntoView实现您的目标:

lst.ScrollIntoView(lst.SelectedItem);