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

时间:2012-01-10 01:58:23

标签: c# xaml windows-phone-7

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

费;

1 个答案:

答案 0 :(得分:0)

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