重新绑定Silverlight Listbox控件后,如何使它滚动回到顶部?
我有一个silverlight列表框,用作搜索结果框。我正在使用动态搜索(搜索框中的键会触发事件以过滤此列表框的内容)。我遇到的问题是,如果用户在框未过滤时向下滚动,然后进行搜索,则重新绑定列表框不会导致滚动返回顶部,从而使结果看起来只有一个值 到目前为止,我为listbox编写的代码如下(这是一个简化版本): XAML: 同样,由于正在进行的工作,这大大简化了(我去数据库获取报告名等)。当我重新绑定列表框时,如何让它滚动到列表顶部的第一项?由于我无法从ListBox对象中访问scrollviewer控件,我是否必须创建一个围绕ListBox的scrollviewer控件,然后从那里设置它的视图位置?您尝试过吗重新绑定Silverlight Listbox控件后,如何使它滚动回到顶部?,silverlight,listbox,scrollviewer,Silverlight,Listbox,Scrollviewer,我有一个silverlight列表框,用作搜索结果框。我正在使用动态搜索(搜索框中的键会触发事件以过滤此列表框的内容)。我遇到的问题是,如果用户在框未过滤时向下滚动,然后进行搜索,则重新绑定列表框不会导致滚动返回顶部,从而使结果看起来只有一个值 到目前为止,我为listbox编写的代码如下(这是一个简化版本): XAML: 同样,由于正在进行的工作,这大大简化了(我去数据库获取报告名等)。当我重新绑定列表框时,如何让它滚动到列表顶部的第一项?由于我无法从ListBox对象中访问scrollvie
mReportList.SelectedIndex = 0
看了这篇文章之后 我尝试了以下方法,效果很好
theListBox.ItemsSource = data;
theListBox.UpdateLayout();
theListBox.ScrollIntoView(theListBox.Items[0]);
我试着用SearchResultBox这样做,但什么也没发生,它仍然在框的顶部滚动最后一个值,滚动条在框的最底部。当我尝试执行mReportList.SelectedIndex时,它不是mReportList的有效属性。这是我缺少的。UpdateLayout获取ScrollIntoView(我过去一直在尝试使用它)来完成它需要做的事情。谢谢令人惊叹的。我尝试了几种不同的方法,这一种非常适合我的需要。
mReportList.SelectedIndex = 0
theListBox.ItemsSource = data;
theListBox.UpdateLayout();
theListBox.ScrollIntoView(theListBox.Items[0]);