2012-05-01 59 views
0

我的情况,我有一些用户控件让我们说,他们是:延迟加载的用户控件

  1. CreateStudents
  2. CreateTeachers

每个用户控制有自己的查看模型。 datacontext在初始化中设置。

我有其中这些上述用户控制可以被装载到主UI。所以设置datacontext工作正常。

问题陈述 我有另一个用户控制“CreateClass”,这是标签的集合。从这里我可以去上面的两个用户cotrols(隐藏标签)。

DataContext的是通过在CreateClassViewModel “CreateStudentManager” 和 “CreateTeacherManager” 两个属性设置。

这工作得很好,但问题是,当我默认打开CreateClass UI,其他用户也控制加载(我猜是因为他们有默认的构造函数)。

因为当我打开CreateClass我DONOT要加载的其他控件。这些应该仅在从Create Class UI明确调用它们时才加载。

如何实现这一目标?

下面

为一个 “CreateStudent” 样品

<TabItem Header="Students" Visibility="{Binding IsStudentVisible, Converter={StaticResource BooleanToVisibilityConverter}}" > 
       <Grid> 
        <local:UCCreateStudent DataContext="{Binding CreateStudentManager}"/> 
       </Grid> 
      </TabItem> 
  • 吉里贾

回答

0

最简单的将是做到这一点在代码,即。将本地:UCCreateStudent项目添加到所需事件触发器上的网格中。给电网的名称(例如,x:名称= “MyGrid”),然后

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

哦对不起忘了补充,我使用MVVM模式。那么有没有办法? – Shankar