【问题标题】:set vertical offset of scroll viewer in mvvm在 mvvm 中设置滚动查看器的垂直偏移量
【发布时间】:2012-01-10 01:58:23
【问题描述】:

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

【问题讨论】:

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

标签: c# xaml windows-phone-7


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 2012-06-18
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 2019-12-10
    相关资源
    最近更新 更多