単純にコードをより管理しやすくしたい場合は、ユーザー コントロールで各タブのデータを定義することをお勧めしますが、メインのタブ コントロールには TabItem を配置します。
元のコードが次のようなものであると仮定しましょう:
<TabControl>
<TabItem Header="Tab 1">
<Grid>
<TextBlock Text="Tab Data" />
</Grid>
</TabItem>
</TabControl>
コードをより管理しやすくするために、タブの内容を次のような UserControl に分割できます。
<UserControl x:Class="WpfApplication19.Tab1Data"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<Grid>
<TextBlock Text="Tab Data" />
</Grid>
</UserControl>
次に、TabControl でそのユーザー コントロールを次のように使用します。
<TabControl>
<TabItem Header="Tab 1">
<tabData:Tab1Data />
</TabItem>
</TabControl>
本当にユーザー コントロールに TabItem を含めたい場合は、最初にユーザー コントロールを作成してから、ユーザー コントロールのタイプを TabItem タイプに変更します (xaml ルート ノードとコードビハインド)。
これにより、次のようなタブ コントロールが残ります。
<TabControl>
<tabData:TabItem1 />
<tabData:TabItem2 />
<tabData:TabItem3 />
</TabControl>
また、各 TabItem1 'User Control' は TabItem 型になります。次に例を示します。
<TabItem x:Class="WpfApplication19.TabItem1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Header="Tab 1"
>
<Grid>
<TextBlock Text="Tab Data" />
</Grid>
</TabItem>
前述したように、コード ビハインドを変更して、ユーザー コントロールの代わりに TabItem を拡張するようにしてください。
public partial class TabItem1 : TabItem
{
public TabItem1()
{
InitializeComponent();
}
}