2013-04-29 192 views
0

我正在處理桌面應用程序。它有一個dropdown menu。當在dropdown上單擊菜單項時,如果以前未打開,則會打開一個新的tab。單個dropdown menu item有單個tab。我想要做的是打開一個window,pageuser control(我不確定我應該使用哪個),在考慮他們將要完成的工作時單獨使用tab在Wpf中動態加載LayoutPanel內容

我的部分XAML

<dxd:DockLayoutManager DockItemClosing="DockLayoutManager_DockItemClosing_1"> 
    <dxd:LayoutGroup> 
     <dxd:TabbedGroup Name="tabbedGroup">       
     </dxd:TabbedGroup> 
    </dxd:LayoutGroup> 
</dxd:DockLayoutManager> 

和部分CS

private void addPanel(string caption) 
{ 
    var contains = false; 
    var layoutPanel = new LayoutPanel() { Caption = caption }; 

    BaseLayoutItem[] baseLayoutItem = tabbedGroup.GetItems(); 

    foreach (var layoutItem in baseLayoutItem) 
    { 
     if (layoutItem.Caption.Equals(layoutPanel.Caption)) 
     { 
      contains = true; 
     } 
    } 

    if (!contains) 
    { 
     tabbedGroup.Add(layoutPanel); 
    } 
} 

正如我所說,我想追加一個windowpageuser control(我不知道我應該使用)分開打開每個LayouPanel

回答

0

確定它是那麼容易,因爲:

layoutPanel.Content = new UserControl1(); 

,我得到了一個技巧用於動態創建所需的選項卡:

layoutPanel.Content = Activator.CreateInstance(Type.GetType(Constants.s_tabs[caption])); 

我希望這不會造成任何性能問題。

+0

該解決方案的缺點是什麼? – gesus 2013-07-25 08:14:40