Wpf 延迟加载父控件中的用户控件

Wpf 延迟加载父控件中的用户控件,wpf,Wpf,我有一个场景,其中我有一些用户控件,比如说: 创造学生 创设教师 每个用户控件都有自己的视图模型。datacontext是在初始化中设置的 我有一个主UI,可以在其中加载上述用户控件。因此,设置datacontext很好 问题陈述 我有另一个用户控件CreateClass,它是选项卡的集合。从这里我可以转到上面两个用户控制隐藏选项卡 datacontext由CreateClassViewModel CreateStudentManager和CreateTacherManager中的两个属性设置

我有一个场景,其中我有一些用户控件,比如说:

创造学生 创设教师 每个用户控件都有自己的视图模型。datacontext是在初始化中设置的

我有一个主UI,可以在其中加载上述用户控件。因此,设置datacontext很好

问题陈述 我有另一个用户控件CreateClass,它是选项卡的集合。从这里我可以转到上面两个用户控制隐藏选项卡

datacontext由CreateClassViewModel CreateStudentManager和CreateTacherManager中的两个属性设置

这很好,但问题是当我默认打开CreateClass UI时,我猜其他用户控件也会加载,因为它们有默认构造函数

因为当我打开CreateClass时,我不希望加载其他控件。仅当从创建类UI显式调用它们时,才应加载它们

如何做到这一点

下面是一名学生的示例

<TabItem Header="Students" Visibility="{Binding IsStudentVisible, Converter={StaticResource BooleanToVisibilityConverter}}" >
                <Grid>
                    <local:UCCreateStudent DataContext="{Binding CreateStudentManager}"/>
                </Grid>
            </TabItem>
吉里贾
最简单的方法是在代码中完成,即将local:UCCreateStudent项添加到所需事件触发器的网格中。给网格一个名称,例如x:name=MyGrid,然后

 void OnTrigger(...)
 {
      UCCreateStudent NewStudent = new UCCreateStudent();
      // extra code for setting the datacontext and any other layout properties
      MyGrid.Children.Add(NewStudent);
 }

有一篇关于codeproject的好文章:

哦,对不起,忘了添加,我正在使用MVVM模式。那有办法吗?