我有两个单独的视图,每个视图都包含一个ScrollViewer。我希望在滚动方面相互依赖。 (使用PRISM注入视图)
如果他们在同一个视图中,我可以做到这一点。但是,我似乎被困在孤立的视图之间。 (这些观点是孤立的,有充分的理由......我想!)
我想我想做的是将ScrollViewer的'ScrollChangedEvent'回显到ViewModel层,然后使用一些链接服务将消息传递给第二个ViewModel。
然而,我正在努力研究如何在不违反MVVM的情况下从ViewModel驱动第二个ScrollViewer。
当然,我错过了一些明显的东西,所以非常感谢正确方向的推动。
由于
答案 0 :(得分:1)
有几种方法可以解决这个问题。如您所建议的那样,将滚动更改传输到视图模型。从那里,您可以使用松散的pub / sub机制(例如Prism的Event Aggregator)或两个视图模型可用的共享对象,将事件从一个视图模型传输到另一个视图模型。
我的建议是使用Prism。
当第二个视图模型接收到该事件时,它可以使用视图可以直接使用的另一个事件将其发布到视图,或者通过属性(使用附加属性绑定到该调用ScrollViewer.ScrollToVerticalOffset
)< / p>