2014-01-07 2 views
0

У меня есть вид списка, который я хочу прокрутить вниз, когда добавляю элементы в список «Items».ListView: как всегда прокручивать нижнюю часть

Поскольку я добавляю элементы, они появляются в ListView, но когда я достигаю предела экрана, в списке остается верхняя секция, а новые элементы добавляются снизу. Если я прокручу вниз, я увижу новые предметы. Я бы хотел, чтобы он автоматически прокручивался вниз, чтобы я всегда мог видеть последние элементы в списке.

<ListView 
     x:Name="lvBasketContent" 
     Grid.Row="1" 
     ItemsSource="{Binding Items}" 
     ItemContainerStyle="{StaticResource ListViewItemStyle1}" 
     HorizontalContentAlignment="Stretch" 
     VerticalContentAlignment="Bottom" 
     SelectionMode="None" 
     IsSwipeEnabled="False" 
     VerticalAlignment="Top" 
     > 

Может ли кто-нибудь помочь мне, пожалуйста?

ответ

1

Необходимо выполнить create a custom behavior или производную реализацию ListView.

Этот класс должен контролировать коллекцию ItemsSource для внесения изменений и вызывать ListViewBase.ScrollIntoView(Object), передавая элемент, который вы хотите показать. В вашем случае это может быть последнее.

Я рекомендовал поведение, так как он сохраняет ваш код модульным, поскольку вы можете использовать его в любом представлении в своем решении, изменяя только xaml.

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

0

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

//Add an item in the listbox 
lvBasketContent.Items.Add(...); 

//... 

//Scroll to bottom 
lvBasketContent.SelectedIndex = lvBasketContent.Items.Count -1 
lvBasketContent.ScrollIntoView(lvBasketContent.SelectedItem) 
Смежные вопросы