Xaml NInject:将参数发送到ViewModel类构造函数

Xaml NInject:将参数发送到ViewModel类构造函数,xaml,mvvm,ninject,Xaml,Mvvm,Ninject,我正在开发一个WindowsPhone7应用程序,并且正在使用MVVM模式。我需要为页面向ViewModel的构造函数传递一个参数。我所有的数据上下文和绑定都是在XAML中完成的。通过我的研究,我发现我需要使用依赖注入程序,比如NInject 这里有一些关于发生了什么的细节: 我有一个带有列表选择器的页面,其中列出了各种任务。每个任务都有一个唯一的TaskID。选择项目后,我需要打开另一个页面,显示所选任务的详细信息。如果我在ViewModel中使用静态TaskID,我的ViewModel和绑定

我正在开发一个WindowsPhone7应用程序,并且正在使用MVVM模式。我需要为页面向ViewModel的构造函数传递一个参数。我所有的数据上下文和绑定都是在XAML中完成的。通过我的研究,我发现我需要使用依赖注入程序,比如NInject

这里有一些关于发生了什么的细节: 我有一个带有列表选择器的页面,其中列出了各种任务。每个任务都有一个唯一的TaskID。选择项目后,我需要打开另一个页面,显示所选任务的详细信息。如果我在ViewModel中使用静态TaskID,我的ViewModel和绑定就完成了,并且可以正常工作,但当然我需要使用变量

我已经在项目中设置了NInject以及所需的各种类,如ViewModelLocator和我的NInject模块,如下所示:

public class LighthouseNInjectModule : NinjectModule
{
    public override void Load()
    {
        this.Bind<TaskViewModel>().ToSelf().WithConstructorArgument("TaskID", 2690);
    }
}

WithConstructorArgument
有另一个oveload,它接受一个延迟的函数
Func

,感谢您的响应Remo。我在GitHub上到处寻找Ninject,在这里我也希望看到它是如何实现的,在哪里实现的,但结果是空的。Ninject的文档很薄,我希望有一本解释一切的好书。有人有样本吗?@Waltedbn:你能解释一下你的版本/困难吗?Remo的方法是正确的,并且从Ninject中长期存在的重载记忆来看。你没看到超载吗?你在看什么?除非你能详细说明你的具体问题,否则我们无法提供更多信息。在新书中,强烈建议使用.NET中的依赖项注入,尽管它没有特别介绍Ninject。如果你阅读了这篇文章和Ninject维基,你会有足够的信息。(并不是说维基是完美的——这取决于你需要的介绍材料/ninject细节的混合,而且还远远不够完美)谢谢你的新书推荐。八月底有一个新版本面世,我已经下了订单。至于我当前的问题,我看到了以“stringname,Func callback”作为参数的重载。我遇到的问题是回调参数。我假设需要是viewModel中的一个函数,该函数的值需要发送到第二个viewModel的ctor。我是否指定该函数的委托?函数名本身?我是否使用lambda,例如()=>MyDelegate。在最后一天,我读了很多关于函数、委托、回调的书,但是没有得到任何我用来编译的语法。显然,我没有太多使用func回调函数作为参数的经验,我正在搜索一个示例实现<代码>带构造函数参数(“任务ID”,ctx=>23)
public class TaskViewModel : INotifyPropertyChanged
{
    [Inject]
    public TaskViewModel(int TaskID)
    {
        //run function to get data using TaskID
    }
}