2010-04-19 72 views
0

我定义下面的TabControl称为TabControl1:如何将一个TabControl绑定到WPF中另一个TabControl的TabItems?

<TabControl> 
    <TabItem Header="Cheese"> The Cheese Tab </TabItem> 
    <TabItem Header="Pepperoni"> The Pepperoni Tab </TabItem> 
    <TabItem Header="Mushrooms"> The Mushrooms Tab </TabItem> 
</TabControl> 

我定义另一个的TabControl,TabControl2其动态地从一个加载或加载插件:

<TabControl> 
    <TabItem Header="Anchovies"> The AnchoviesTab </TabItem> 
    <TabItem Header="Jalepenos"> The Jalepenos Tab </TabItem> 
    <TabItem Header="Rattle Snake"> The Rattle Snake Tab </TabItem> 
</TabControl> 

后TabControl1结合TabControl2在“Cheese”项之后,TabControl1应该如下所示:

<TabControl> 
    <TabItem Header="Cheese"> The Cheese Tab </TabItem>  
    <TabItem Header="Anchovies"> The AnchoviesTab </TabItem> 
    <TabItem Header="Jalepenos"> The Jalepenos Tab </TabItem> 
    <TabItem Header="Rattle Snake"> The Rattle Snake Tab </TabItem> 
    <TabItem Header="Pepperoni"> The Pepperoni Tab </TabItem> 
    <TabItem Header="Mushrooms"> The Mushrooms Tab </TabItem> 
</TabControl> 

回答

0

使用数据为您的UI建模。即查看模型。从这些视图模型生成UI:

<TabControl ItemsSource="{Binding Items}" 

然后你就可以在您认为合适这些模型组合成集,并透过这些藏品的UI。

+0

我忘了提这个。第一个项目列表是静态的,而第二个列表是从另一个程序集动态加载的。我想利用设计时环境在各个标签页上布置我的控件。我没有看到我如何用视图模型做到这一点,因为我不得不使用模板和代码重新创建所有这些控件。而且,这些控件包含数据,例如存储在程序集设置文件中的设置。如果我能以某种方式绑定单个TabItem而不是整个TabControl,这将解决我的问题。 – 2010-04-19 20:41:54

+0

请让我补充一点,我以前的解决方案是加载包含TabControl2的程序集并将其各个TabItems复制到Control1。这有效,但不像我想的那样干净和充满活力。我可以忍受这一点,但是有没有办法“结合”这两个TabControls,即在给定节点上轻松地将TabItems从一个TabItems插入到另一个TabItems? – 2010-04-19 20:47:23