2012-05-01 91 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