【发布时间】:2011-07-29 17:01:12
【问题描述】:
我有一个 MVVM WP7 应用程序,我在其中尝试将值从一个 Page/ViewModel 发送到第二个 ViewModel 的构造函数。我已经设置了 Ninject,并使用如下行使其与静态测试值一起使用:
this.Bind<TaskViewModel>().ToSelf().WithConstructorArgument("TaskID", 2690)
同样,它适用于静态值,但我需要它是用户选择的变量。我被告知要使用重载
WithConstructorArgument(string name, Func<IContext,object> callback).
我认为这个回调会在第一个 ViewModel 上调用一个函数并获取值。
但我并没有成功,我欣然承认我在 Ninject 或使用 Func 回调参数方面都不是很有经验。我已经尝试设置一个委托和函数来从第一个 ViewModel 获取值,但这会给出一个错误,说我正在尝试传递一个类型。我究竟如何指定该参数以使用回调,在第一个 ViewModel 或其他东西中使用委托是否正确?
【问题讨论】:
-
您确定以这种方式使用依赖注入是个好主意吗?我的意思是根据用户输入解决组件依赖关系?
-
它是由我认为对 Ninject 非常了解的人向我推荐的,正如我在问题中所说的那样,我不是。如果您有适合 MVVM 的合适解决方案,我绝对愿意改变我的方法。
-
@Waltedbn:Remo Gloor 是 Ninject 项目的当前活跃开发者。他是世界上对这个话题最了解的人。听他的。
-
是的,我知道,雷莫是我真正指的那个人。