c# - 将参数传递到 ViewModels (Prism)

标签 c# silverlight mvvm prism viewmodel

我不知道如何将参数从其他 View 或 View 模型传递到我的 View 模型。

例如,我有一个名为 Customers 的 View 。里面有一个网格,如果双击网格,应该会出现一个新 View 并允许您编辑该客户的数据。但是,如果我不能在内部传递任何参数,负责编辑数据的 View(Model) 将如何知道它应该打开哪个客户?

EventAggregator 是不可能的,因为我显然不能为一个 View 创建数百个事件参数。此外,这是一个糟糕的解决方案。

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

CustomerDataView custView = new CustomerDataView(customerId, currentContext);
manager.Regions[RegionNames.Sidebar].AddAndActivate(custView);

您如何看待这个特定的解决方案?这是通常的做法吗? 我不喜欢的是我失去了 Unity 的自动依赖注入(inject)。

最佳答案

或者,您可以将 Unity 升级到支持“参数覆盖”的最新版本。

MyType mt = container.Resolve<MyType>(
                      new ParameterOverride("customerId", customerId));

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

关于c# - 将参数传递到 ViewModels (Prism),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2524455/

相关文章:

c# - Windows 登录的多重身份验证

c# - 如何将网格添加到我的组合框并显示 observableCollection 数据?

c# - 如何将两个命令绑定(bind)到 WPF 按钮?

c# - 如何从 inkcanvas 中直接获取位图图像(在 wpf 中)

c# - Visual Studio 扩展 : Custom Quick Action

visual-studio-2010 - 无法在 Visual Studio 2010 SP1 上安装 silverlight 4 工具

silverlight - INotifyDataErrorInfo.GetErrors(null) 应该返回所有错误吗?

c# - Silverlight深度缩放合成问题

c# - 在我需要基于 XAML 控件进行计算的情况下,使用 MVVM 与控件交互的正确设计是什么?

c# - 将对象传递给 jint 中的函数并返回值