Задать положение вертикальной полосы прокрутки зависит от выбранного элемента в списке
В моем маленьком приложении есть кнопка, по которой один раз нажимают, выбирается пятый элемент в списке.
проблема в том, что он выходит за рамки списка, и я хотел бы, чтобы вертикальная полоса прокрутки скользила вниз, чтобы я мог видеть выбранный элемент.
Как я могу это сделать?
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 ответ
Решение
Используйте ListView.ScrollIntoView для достижения того, что вы хотите:
lst.ScrollIntoView(lst.SelectedItem);