【问题标题】:ListView scroll to bottom as all binding data loaded加载所有绑定数据时,ListView 滚动到底部
【发布时间】:2016-03-06 09:11:30
【问题描述】:

我的 xaml 中有一个 ListView,它绑定到包含项目的 ReadOnlyObservableCollection

加载完所有绑定列表后,如何滚动到 ListView 底部?

在将数据添加到 mylist(在 ViewModel 上)时,我尝试使用 myList.ScrollToBottom() 函数 - 滚动不可见,它不会滚动到最后的列表。

我尝试订阅 Lists LoadedCollectionChangedItemContainerGenerator.ItemsChanged 事件,然后滚动到底部没有'也没有帮助。

如果我订阅了我在将数据设置到列表时触发的事件(在 ViewModel 上),然后我稍微延迟调用 ScrollToBottom 函数 - 滚动是完美的,所以我猜这是时间问题......

任何帮助将不胜感激。

【问题讨论】:

  • Windows Phone 或 WPF ?

标签: c# xaml listview binding windows-phone-8.1


【解决方案1】:

尝试使用这个:

myList.ScrollIntoView(myList.Items[myList.Items.Count - 1])

【讨论】:

  • 成功了,谢谢!我将其更改为: myList.ScrollIntoView(myList.Items[myList.Items.Count - 1]);
  • @PavelDurov 抱歉。我打字很快,所以错过了项目
  • 无需抱歉。谢谢你的回答!
【解决方案2】:

如果你有一个 ViewModel,你会怎么做? ViewModel 不知道您在说什么控件。那么你的 ViewModel 如何引用“myList”呢?

我还试图让 ListView 在集合更新时滚动到最后一项,但 XAML 中没有任何 ScrollTo 功能可用:无法绑定到它们。这些似乎都是 METHODS,这意味着你不能用它来做属性 MVVM。

还是我错过了什么?

【讨论】:

  • ViewModel 将集合作为属性公开,他不知道 listView 控件。 listView 控件将其 ItemSource 绑定到该属性。不过我不太确定你的问题 - 你是什么意思?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-22
  • 1970-01-01
  • 2013-03-06
  • 1970-01-01
  • 2017-08-11
  • 2018-02-27
  • 2020-09-27
相关资源
最近更新 更多