我尝试在按钮点击处理程序中添加以下内容:
问题在于,处理程序在我的命令处理程序之前被调用,因此太早了。在处理程序中,ListView还没有看到已添加项目的更新后的ObservableCollection。有什么事件或更好的方法(不改变代码),可以在将我的项目添加到ObservableCollection后使ListView滚动到末尾?我已经找过stackoverflow,但还没有找到答案。谢谢!
ListView listView = MyListView;
int lastItemIndex = listView.Items.Count - 1;
listView.ScrollIntoView(listView.Items[lastItemIndex]);
listView.UpdateLayout();
也与一个命令处理程序相关联,它会向与ListView关联的ObservableCollection添加一个项目。问题在于,处理程序在我的命令处理程序之前被调用,因此太早了。在处理程序中,ListView还没有看到已添加项目的更新后的ObservableCollection。有什么事件或更好的方法(不改变代码),可以在将我的项目添加到ObservableCollection后使ListView滚动到末尾?我已经找过stackoverflow,但还没有找到答案。谢谢!
INotifyCollectionChanged
(请查看答案中的更新)。这样,您就可以从视图中访问任何模型类进行抽象化。将其移动到ViewModel中似乎不太合适,因为我们在此处执行特定于视图的操作(将滚动项滚动到视图中)。如果有了接口,我想这是完全可以的。只要绑定到实现INotifyCollectionChanged的集合,您就不必担心底层模型类从TestClass更改为任何其他类。(当然) - Rohit Vats