1
裏面我有兩個ContentTemplates一個TabControl:WPF通過一個DataContext到我的用戶一個DataTemplate
<TabControl ItemsSource="{Binding Tabs}" ContentTemplateSelector="{StaticResource TabSelector}">
<TabControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding TabName}" HorizontalAlignment="Center" />
</StackPanel>
</DataTemplate>
</TabControl.ItemTemplate>
</TabControl>
和我的兩個模板是兩個用戶控件:
<UserControl.Resources>
<ResourceDictionary>
<DataTemplate x:Key="UserListTemplate">
<uc:UserList />
</DataTemplate>
<DataTemplate x:Key="UserContentTemplate">
<uc:User />
</DataTemplate>
<uc:TabSelector x:Key="TabSelector" UserListTemplate="{StaticResource UserListTemplate}" UserContentTemplate="{StaticResource UserContentTemplate}" />
</ResourceDictionary>
</UserControl.Resources>
我設置的DataContext在XAML中:
<UserControl.DataContext>
<local:ViewUsers />
</UserControl.DataContext>
TabControl綁定正在工作,顯示所有選項卡,因爲我添加/從t中刪除他的集合,但我如何在我的UserControls中獲得DataContext?當用戶控件啓動時,DataContext始終爲空。
訪問它在DataContextChanged僅事件
所以最好的辦法是通過
RelativeSource
直接結合,如綁定到視覺父母的datacontext 。 – FreddyFlares@FreddyFlares嗯,工作,謝謝。它是有道理的,並幫助我理解控制創建的循環,首先創建沒有DataContext,然後它被設置。 – Danicco