【发布时间】:2017-08-28 09:34:21
【问题描述】:
我的 MainWindow.xaml 的结构如下
<Window>
<Grid>
<TabControl Name="MainTabCntrl">
<TabItem1>
<TabItem2>
<TabItem3>
.
.
.
<TabItemN>
</TabControl>
</Grid>
</Window>
问题是我的 MainWindow.xaml 目前是 ~4000 行代码,效率不高(你同意吗?) 我试图实现的解决方案是分别创建 N 个窗口(代表我的 TabItems),每次用户单击 Tab 项时,我都会在该 TabItem 中加载相关窗口,如下所示
private void inventory_start()//this function is called in my MainWinodw.xaml.cs
{
inv = new Inventory(db, logViewer);//this is a window
TabItem tbItem = new TabItem();
Frame frame = new Frame();
frame.Content = inv;
tbItem.Name = "invTab";
tbItem.Content = frame;
tbItem.IsSelected = true;
MainTabCntrl.Items.Add(tbItem);
inv.swithInventoryTabs("inv_info");
}
我现在有一个错误,“'Management_V0.Inventory' 根元素对导航无效。”
【问题讨论】:
-
让
Inventory和其他选项卡内容是UserControl或其他类型的窗口内容 而不是Window怎么样?我认为如何创建 N 个单独的 TabItem 内容的问题比回答如何加载嵌套窗口(您可能不需要)更容易回答。 -
@grek40 感谢您的回答,您对创建 N 个单独的 TabItem 内容有何看法?
-
如果这是您的要求,我可以为 “主要基于意见” 投票赞成这个问题。请遵循问题指南并陈述您的具体问题,而不是征求意见。
-
实际上我在第一行问了我的问题“问题是我的 MainWindow.xaml 目前是 ~4000 行代码,效率不高(你同意吗?)”引发此问题的问题问题是“效率”。
-
当然第二个问题是你和mm8回答的错误:)