我有一个列表视图,当我将项目添加到“项目”列表中时,我想滚动到底部。
当我添加项目时,它们会出现在ListView中,但是当我达到屏幕上限时,列表仍会显示顶部,新项目会添加到底部。如果我向下滚动,我可以看到新项目。我希望它能自动滚动到底部,以便我总能看到列表中的最新项目。
<ListView
x:Name="lvBasketContent"
Grid.Row="1"
ItemsSource="{Binding Items}"
ItemContainerStyle="{StaticResource ListViewItemStyle1}"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Bottom"
SelectionMode="None"
IsSwipeEnabled="False"
VerticalAlignment="Top"
>
有人可以帮帮我吗?
答案 0 :(得分:1)
您需要create a custom behavior或ListView
的派生实现。
此类应监视ItemsSource集合的更改并调用ListViewBase.ScrollIntoView(Object)
,并传入要显示的项目。在您的情况下,这可能是最后添加的。
我推荐了这种行为,因为它保持代码模块化,因为您可以通过仅更改xaml在解决方案的任何列表视图中使用它。
我不打算为你编写代码,因为行为是第一手学习的非常有用的技巧。第一个链接应该为您提供破解所需的一切。
答案 1 :(得分:0)
你可以试试把它放在你的代码中吗?每次将项目添加到列表框时,请尝试将其命名为
//Add an item in the listbox
lvBasketContent.Items.Add(...);
//...
//Scroll to bottom
lvBasketContent.SelectedIndex = lvBasketContent.Items.Count -1
lvBasketContent.ScrollIntoView(lvBasketContent.SelectedItem)