繁体   English   中英

嵌套用户控件的数据上下文

[英]Datacontext of nested user controls

背景 :-

我有一个wpf视图,其中包含一个组合框,该组合框由使用caliburn micro / ninject和mvvm模式的视图模型填充; 该视图还包含一个堆栈面板区域。 当用户从组合框中选择适当的选项时,我将适当的用户控件插入到堆栈面板中,从而向用户显示与相关显示的过渡。

显示在堆栈面板中的每个“嵌套”用户控件都有自己的视图模型,这些视图模型由caliburn micro自动关联。

问题:-

所有“嵌套”用户控件绑定都尝试并引用回父视图模型,而不是具体引用与之关联的视图模型。

首先,我可以通过指定:-来解决此问题

<UserControl.DataContext>
    <vm:UserControlSpecificViewModel/>
</UserControl.DataContext>

但这需要视图模型中的无参数构造函数,但是我需要能够将参数传递给此视图模型,以便Ninject可以注入诸如EventAggregator之类的对象。

由于我是WPF的新手,所以转而学习,对您有所帮助。

谢谢。

詹姆士。

解决您的问题的一种方法是仅在后面的代码中初始化视图模型并调用适当的构造函数。 如果您不喜欢WPF应用程序中的代码,那么我想您可以将视图模型绑定到IEventAggregator对象。

XAML:

<UserControl1 x:Name="myUserControl">
</UserControl>

代码背后:

public MainWindow() // Constructor for window
{
    InitializeContext();
    MyViewModel vm = new MyViewModel(...);
    myUserControl.DataContext = vm;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM