Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重新绑定Silverlight Listbox控件后,如何使它滚动回到顶部?_Silverlight_Listbox_Scrollviewer - Fatal编程技术网

重新绑定Silverlight Listbox控件后,如何使它滚动回到顶部?

重新绑定Silverlight Listbox控件后,如何使它滚动回到顶部?,silverlight,listbox,scrollviewer,Silverlight,Listbox,Scrollviewer,我有一个silverlight列表框,用作搜索结果框。我正在使用动态搜索(搜索框中的键会触发事件以过滤此列表框的内容)。我遇到的问题是,如果用户在框未过滤时向下滚动,然后进行搜索,则重新绑定列表框不会导致滚动返回顶部,从而使结果看起来只有一个值 到目前为止,我为listbox编写的代码如下(这是一个简化版本): XAML: 同样,由于正在进行的工作,这大大简化了(我去数据库获取报告名等)。当我重新绑定列表框时,如何让它滚动到列表顶部的第一项?由于我无法从ListBox对象中访问scrollvie

我有一个silverlight列表框,用作搜索结果框。我正在使用动态搜索(搜索框中的键会触发事件以过滤此列表框的内容)。我遇到的问题是,如果用户在框未过滤时向下滚动,然后进行搜索,则重新绑定列表框不会导致滚动返回顶部,从而使结果看起来只有一个值

到目前为止,我为listbox编写的代码如下(这是一个简化版本):

XAML:

同样,由于正在进行的工作,这大大简化了(我去数据库获取报告名等)。当我重新绑定列表框时,如何让它滚动到列表顶部的第一项?由于我无法从ListBox对象中访问scrollviewer控件,我是否必须创建一个围绕ListBox的scrollviewer控件,然后从那里设置它的视图位置?

您尝试过吗

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]);