2013-04-29 193 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