Структура моего 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
или другим видом окна Content вместоWindow
? Я думаю, что есть более простые ответы на вопрос, как создать N отдельных содержимого TabItem, чем на то, как загружать вложенные окна (которые вам, вероятно, все равно не нужны). - person grek40   schedule 28.08.2017