나는 동적으로 탭을 생성하는 WPF 응용 프로그램은 지금은 원하는 한 모든 탭 항목, 그래서 만약 런타임 동안 확장기 및 UserControl에 대한 데이터 컨텍스트를 설정 또한 확장 및 UserControl을 및 병을 포함해야 Style의 tabitem에 대한 템플릿을 정의하면 expnder 및 usercontrol에 대해 datacontext를 설정하는 것이 어렵다고 느낍니다. 는 HeaderTemplate 위해서는동적 TabItem의 미리 정의 된 템플릿
XAML 코드 숨김에서
<TabControl Name="tabDynamic" ItemsSource="{Binding}" SelectionChanged="tabDynamic_SelectionChanged" FontSize="15" FontFamily="Verdana" FontWeight="Normal" FontStretch="Expanded" >
<TabControl.Resources>
<DataTemplate x:Key="TabHeader" DataType="TabItem">
<DockPanel>
<Button Name="btnDelete" DockPanel.Dock="Right" Margin="150,0,0,0" Content="X" Foreground="WhiteSmoke" FontSize="10"
FontWeight="Bold" Padding="0" Click="btnDelete_Click" Height="15"
CommandParameter="{Binding RelativeSource={RelativeSource AncestorType={x:Type TabItem}}, Path=Name}" >
<Button.Background>
<LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
<GradientStop Color="#FF9D4040" Offset="0" />
<GradientStop Color="#FFB11212" Offset="1" />
</LinearGradientBrush>
</Button.Background>
<!--<Image Source="/delete.gif" Height="11" Width="11"></Image>-->
</Button>
<TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=TabItem }, Path=Header}" />
</DockPanel>
</DataTemplate>
</TabControl.Resources>
</TabControl>
아픈 내용을 추가,
Private Function AddTabItem() As TabItem
Dim count As Integer = _tabItems.Count
Dim tab As New TabItem()
tab.Header = String.Format("tab{0}", count)
tab.Name = String.Format("tab{0}", count)
tab.HeaderTemplate = TryCast(tabDynamic.FindResource("TabHeader"), DataTemplate)
_tabItems.Insert(count - 1, tab)
obj = New ThumbnailImages
' add controls to tab item,
If ImageCollection.Count > 0 Then
obj.SetDataContext(ImageCollection)
tab.Content = obj
End If
Return tab
End Function
지금 내가 내용을 필요에 어떻게, 확장 및 UserControl을와 템플릿 수 나는 성취합니까?
고맙습니다 답장을 위해 고맙습니다, 이건 내가 필요로하지 않습니다 .. 솔루션을 발견, 나는 내 사용자 정의 컨트롤에 확장기를 추가, bcz 확장기는 몇 가지 복잡한 논리를 가지고 다음 탭 항목에 usercontrol을 추가했습니다. – Selva