EventAggregator或UriQuery哪个是传递数据的首选

时间:2014-01-08 13:15:26

标签: c# wpf mvvm prism

我正在使用WPF Prism进行开发,我们希望将值从一个视图/视图模型传递到另一个视图/视图模型,我们可以使用EventAggregator或UriQuery,因此需要建议使用哪一个。

现在我们可以考虑传递像ID这样的简单参数。稍后我们必须传递对象,但我知道我不能直接将对象传递给uri查询但我们可以管理它但是传递字段。

我知道如何实现这些,但想知道哪一个是Prism和MVVM中的首选方式或标准。

请建议

1 个答案:

答案 0 :(得分:1)

这两种方法工作

,这很大程度上取决于品味

我保留UriQuery用于涉及有效负载的导航。这是UriQuery discussed in the prism documentation的情况。我不喜欢它们因为它们使用弱类型数据 - 在这种情况下是字符串。你必须序列化和反序列化。对于复杂数据,这很容易出错。

聚合事件允许您在发布事件时传递Argument对象。您不必序列化和反序列化查询,但您需要一个公共库来定义参数类。