将参数传递给ViewModels(Prism)

vXt*_*eme 3 c# silverlight prism mvvm viewmodel

我无法弄清楚如何从其他视图或视图模型将参数传递给我的viewmodel.

例如,我有一个名为Customers的视图.内部有一个网格,如果双击网格,则应该出现一个新视图,允许您编辑该客户的数据.但是,如果我不能传递任何参数,那么负责编辑数据的View(模型)将如何知道它应该打开哪个客户?

EventAggregator是不可能的,因为我显然无法为一个视图创建数百个事件标记.此外,这是一个糟糕的解决方案.

到目前为止,我能够提出:

CustomerDataView custView = new CustomerDataView(customerId, currentContext);
manager.Regions[RegionNames.Sidebar].AddAndActivate(custView);
Run Code Online (Sandbox Code Playgroud)

您对此特定解决方案有何看法?这是通常的方式吗?我不喜欢这样的事实是我失去了Unity的自动依赖注入.

And*_*mes 5

或者,您可以将Unity升级到最新版本,该版本支持"参数覆盖".

MyType mt = container.Resolve<MyType>(
                      new ParameterOverride("customerId", customerId));
Run Code Online (Sandbox Code Playgroud)

这就是我所做的.我们发现子容器保留了对其父级的循环引用,并且无法正确收集(泄漏的内存),因此我们进行了升级并选择了此方法.