在Wpf中动态加载LayoutPanel内容

时间:2013-04-29 11:59:47

标签: wpf navigation devexpress devexpress-windows-ui

我正在开发桌面应用程序。它有一个dropdown menu。当dropdown上的菜单项被点击时,如果之前未打开,则会打开新的tab。单个tab只有一个dropdown menu item。我想要做的是打开一个windowpageuser control(我不确定我应该使用哪个)在单独的tab中考虑他们将要做的工作做。

我的部分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单独打开的内容中。< / p>

1 个答案:

答案 0 :(得分:0)

好吧,这很简单:

layoutPanel.Content = new UserControl1();

我还有一个动态创建所需标签的技巧:

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

我希望它不会导致任何性能问题。