C# 在mvvm中设置滚动查看器的垂直偏移

C# 在mvvm中设置滚动查看器的垂直偏移,c#,xaml,windows-phone-7,C#,Xaml,Windows Phone 7,我有一个关于在mvvm模式中设置滚动查看器的垂直偏移的问题。因此,我的用例就像在产品列表页面上一样,用户单击列表底部的“加载更多”按钮,它从服务器获取更多产品,当用户单击“加载更多”时,页面仍然具有相同的垂直偏移。当用户单击“加载更多”时,我可以获得垂直偏移,但在从服务器检索到更多产品后,我无法设置垂直偏移。首先,我尝试将偏移量绑定到视图模型中的依赖项属性,并在视图模型中更新它。但是,系统抱怨scrollviewer的verticaloffset属性是只读的。我也试着在视图中这样做。我想在更新列

我有一个关于在mvvm模式中设置滚动查看器的垂直偏移的问题。因此,我的用例就像在产品列表页面上一样,用户单击列表底部的“加载更多”按钮,它从服务器获取更多产品,当用户单击“加载更多”时,页面仍然具有相同的垂直偏移。当用户单击“加载更多”时,我可以获得垂直偏移,但在从服务器检索到更多产品后,我无法设置垂直偏移。首先,我尝试将偏移量绑定到视图模型中的依赖项属性,并在视图模型中更新它。但是,系统抱怨scrollviewer的verticaloffset属性是只读的。我也试着在视图中这样做。我想在更新列表框时调用_scrollViewer.ScrollToVerticalOffset()。但是,我在Listbox中找不到像Listbox\u这样的事件。你知道我该怎么做吗?谢谢


Fei

您可以创建一个附加的依赖属性(使用DependencyProperty.RegisterAttached)并在列表框上设置该属性,该属性在加载后会在列表框中找到ScrollViewer(可能使用GetTemplateChild()或VisualTreeHelper)。属性可以绑定到视图模型,并在值更改时调用ScrollToVerticalOffset,在引发ScrollViewer上的LayoutUpdated事件时更新其值。

为什么要在加载更多时操纵垂直偏移?