2012-01-10 65 views
0

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

+0

为什么你想在加载更多时操纵垂直偏移? – 2012-01-10 05:43:25

回答

0

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