如何避免自动显示新的ListBox项目

时间:2012-03-29 08:15:17

标签: wpf listbox

我的WPF应用程序中有一个列表框。当用户滚动到顶部并且新项目到达时(它是ObversableCollection),新的项目将显示为新的项目。

我可以改变行为,当新项目到达时,滚动位置不会改变,这意味着新项目在原始顶部项目上方不可见。

2 个答案:

答案 0 :(得分:0)

看起来您在ObservbleCollection的顶部插入了新项目,因此它们显示在列表框的顶部。如果将它们添加到源的末尾,则它们将显示在ListBox的末尾。或者如果您有一些排序(例如通过CollectionViewSource),那么您需要修改排序逻辑以在最后显示添加的项目。

答案 1 :(得分:0)

有一个ScrollIntoView方法,但它不会保留位置,只是它位于列表中的某个位置。如果项目在下面,则将其放在最后位置。因此,如果您将“正确的”最后一次放入视图中以推开拳头,就好像项目位于其下方一样,将其带到最后位置。我有一个简单的3列表,我使ListView Height = 40所以它只有2个空间。以下将第一个项目推出视图。

lvKDNames.ScrollIntoView(liIDName [2]);

如果Height = Auto将更难确定最后一项,但这是一种可能的方法。