【发布时间】:2012-11-07 05:11:34
【问题描述】:
背景:-
我有一个 wpf 视图,其中包含一个组合框,该组合框由使用 caliburn micro/ninject 和 mvvm 模式的视图模型填充;此视图还包含一个堆栈面板区域。当用户从组合框中选择适当的选项时,我将适当的用户控件插入到堆栈面板中,向用户呈现到相关显示的无缝过渡。
在堆栈面板中显示的每个“嵌套”用户控件都有自己的视图模型,由 caliburn micro 自动关联。
问题:-
“嵌套的”用户控件绑定都尝试引用父视图模型,而不是专门与它们关联的视图模型。
最初,我可以通过指定来解决这个问题:-
<UserControl.DataContext>
<vm:UserControlSpecificViewModel/>
</UserControl.DataContext>
但这需要视图模型中的无参数构造函数,但我需要能够将参数传递给此视图模型,以便 Ninject 可以注入诸如 EventAggregator 之类的对象。
由于我对 WPF 还很陌生,所以我将不胜感激。
谢谢。
詹姆斯。
【问题讨论】:
-
需要向视图模型传递什么样的参数?
-
嗨 - 主要是 IEventAggregator
-
@xnetdude。上次我查看 caliburn 时(已经有一段时间了!)我认为它有一个视图模型的概念,其中包含子视图模型融入架构。大概他们会知道如何联系他们的父母,但我不知道。您是否在 caliburn 的 codeplex 论坛上发布过这个问题?
标签: c# wpf mvvm ninject caliburn