我试图滚动到视图,以便垂直listivew中的最后一项始终显示,但ListView.ScrollIntoView()永远不会工作.
我试过了:
button1_Click(object sender, EventArgs e)
{
activities.Add(new Activities()
{
Time = DateTime.Now,
Message = message
});
ActivityList.ItemsSource = activities;
// Go to bottom of ListView.
ActivityList.SelectedIndex = ActivityList.Items.Count;
ActivityList.ScrollIntoView(ActivityList.SelectedIndex);
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
ActivityList.ScrollIntoView(ActivityList.Items.Count),ActivityList.ScrollIntoView(ActivityList.Items.Count + 1);但没有任何工作.
请帮忙.这真的很烦人.在这种情况下,文档不是很有用.
key*_*rdP 14
当方法需要item对象时,您将传入索引.尝试此操作滚动到所选项目.
ActivityList.ScrollIntoView(ActivityList.SelectedItem);
Run Code Online (Sandbox Code Playgroud)
如果要滚动到最后一项,可以使用此项
ActivityList.ScrollIntoView(ActivityList.Items[ActivityList.Items.Count - 1]);
Run Code Online (Sandbox Code Playgroud)
它与内部列表表示有关,也就是说,当你调用ScrollIntoView().After after many尝试后,这些项目还没有到位,这就是我最终提出的,这似乎有效:将两个处理程序附加到每个ListBox/ListView:
<ListBox x:Name="YourList" ... Loaded="YourList_Loaded" SelectionChanged="YourList_SelectionChanged">
Run Code Online (Sandbox Code Playgroud)
和
void YourList_Loaded(object sender, RoutedEventArgs e) {
if (YourList.SelectedItem != null)
YourList.ScrollIntoView(YourList.SelectedItem);
}
void YourList_SelectionChanged(object sender, SelectionChangedEventArgs e) {
if (YourList.SelectedItem != null)
YourList.ScrollIntoView(YourList.SelectedItem);
}
Run Code Online (Sandbox Code Playgroud)
你不能没有的第二个处理程序.ScrollIntoView()设置所选项目后,您无法立即致电,尚未准备就绪.您必须允许列表在实际更改项目时通知您.第一个处理程序取决于具体情况,如果在初始加载列表内容后出现选择问题,您可能也需要它.
| 归档时间: |
|
| 查看次数: |
14892 次 |
| 最近记录: |