在单独的视图中链接控件

时间:2012-05-13 22:05:22

标签: wpf mvvm prism

我有两个单独的视图,每个视图都包含一个ScrollViewer。我希望在滚动方面相互依赖。 (使用PRISM注入视图)

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

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

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

当然,我错过了一些明显的东西,所以非常感谢正确方向的推动。

由于

1 个答案:

答案 0 :(得分:1)

有几种方法可以解决这个问题。如您所建议的那样,将滚动更改传输到视图模型。从那里,您可以使用松散的pub / sub机制(例如Prism的Event Aggregator)或两个视图模型可用的共享对象,将事件从一个视图模型传输到另一个视图模型。

我的建议是使用Prism。

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