0

我有两个单独的视图,每个视图都包含一个 ScrollViewer。我想在滚动方面从属另一个。(正在使用 PRISM 注入视图)

如果他们在同一个视图中,我可以轻松地做到这一点。然而,我似乎被困在孤立的观点之间。(这些观点被孤立是有充分理由的......我认为!)

我想我想做的是将 ScrollViewer 'ScrollChangedEvent' 回显到 ViewModel 层,然后使用一些链接服务将消息传递给第二个 ViewModel。

但是,我正在努力研究如何在不违反 MVVM 的情况下从 ViewModel 驱动第二个 ScrollViewer。

当然,我遗漏了一些明显的东西,因此将不胜感激。

谢谢

4

1 回答 1

1

有几种方法可以解决这个问题。正如您所建议的,一种是将滚动更改转移到视图模型。从那里您可以使用松散的发布/订阅机制(例如 Prism 的事件聚合器)或两个视图模型都可用的共享对象将事件从一个视图模型传输到另一个视图模型。

我的建议是使用棱镜。

当第二个视图模型接收到事件时,它可以使用视图可以直接使用的另一个事件或通过属性将其发布到视图(使用可以绑定到该调用的附加属性ScrollViewer.ScrollToVerticalOffset

于 2012-05-13T22:25:59.630 回答