C# MVVM数据模板和非空视图模型构造函数

C# MVVM数据模板和非空视图模型构造函数,c#,mvvm,datatemplate,C#,Mvvm,Datatemplate,我有以下数据模板: <DataTemplate DataType="{x:Type vm:MyViewModel}"> <views:MyView/> </DataTemplate> 问题是,我的视图模型有一个构造函数,它接受容器自动注入的参数(unity)。为了让DataTemplate工作,MyViewModel需要一个无参数构造函数 < P>是否有其他方法可以将适当的值注入到我的视图模型中,如果我使用DATA模板来创

我有以下数据模板:

    <DataTemplate DataType="{x:Type vm:MyViewModel}">
        <views:MyView/>
    </DataTemplate>

问题是,我的视图模型有一个构造函数,它接受容器自动注入的参数(unity)。为了让DataTemplate工作,MyViewModel需要一个无参数构造函数


< P>是否有其他方法可以将适当的值注入到我的视图模型中,如果我使用DATA模板来创建它?

< P>你可能会考虑使用MVVM框架,比如,采用View Mead第一种方法。

< P>我不认为视图应该创建视图模型。 ViewModels应该创建其他ViewModels,而视图只是定义如何绘制ViewModel

例如,
ParentViewModel
可能有一个名为
ChildViewModel
的属性。
ParentView
将包含一个ContentControl,其内容绑定到
ChildViewModel
,数据模板将用于告诉应用程序将
ChildViewModel
绘制为
ChildView


话虽如此,您的视图当前是如何创建ViewModel的?您可以始终将DependencyProperties添加到视图中,并使用这些属性在视图的已加载事件中构建ViewModel。

谢谢。在我开始使用DataTemplates之前,视图模型是通过构造函数(使用unity)注入到视图中的。@Rachel您能否提供一个示例,说明如何使用
DataTemplate
告诉应用程序将
ChildViewModel
绘制为
ChildView
。通过基于构造函数的依赖项注入,这可能吗?@Thomas当然,您只需要在XAML中添加一个隐式数据模板,就像这里的问题一样。我还举了另一个例子,或者只是在谷歌上搜索“WPF隐式数据模板”,你应该可以找到很多关于它的其他资源。你有没有为这个问题开发过解决方案?