我在嘗試將TabControl中的UserControl作爲Tab內容託管在TabControl中時出現問題。將用戶控件作爲標籤內容承載
我的代碼結構如下:
我有這應該被渲染成通過一個DataTemplate視圖視圖模型。
<DataTemplate x:Key="TabItemContentTemplate" DataType="{x:Type ViewModels:MyViewModel}">
<Views:MyView />
</DataTemplate>
我想在 一個TabControl提出這種觀點(實際上是一個 XamTabControl,但無論哪種方式, 問題仍然存在。)
<UserControl>
<UserControl.Resources>
<DataTemplate x:Key="TabItemHeaderTemplate">
<StackPanel>
<TextBlock Text="{Binding Path=Name}" />
<TextBlock Text="{Binding Path=Description}"/>
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="TabItemContentTemplate" DataType="{x:Type ViewModels:MyViewModel}">
<Views:MyView />
</DataTemplate>
<Style x:Key="TabItemContainerStyle" TargetType="Controls:TabItemEx">
<Setter Property="Header" Value="{Binding}"/>
<Setter Property="HeaderTemplate"
Value="{DynamicResource TabItemHeaderTemplate}"/>
<Setter Property="Content" Value="{Binding}"/>
<Setter Property="ContentTemplate"
Value="{DynamicResource TabItemContentTemplate}"/>
</Style>
</UserControl.Resources>
<Grid >
<Controls:XamTabControl
ItemsSource="{Binding Items}"
ItemContainerStyle="{DynamicResource TabItemContainerStyle}"
TabStripPlacement="Left"
TabLayoutStyle="SingleRowAutoSize"
AllowTabClosing="True"
Grid.Row="1"
TabItemCloseButtonVisibility="WhenSelectedOrHotTracked">
</Controls:XamTabControl>
</Grid>
</UserControl>
的問題是,內容不渲染。 Tab標頭確實呈現良好,但是,標籤中沒有內容。
我相當肯定的問題在於視圖/視圖模型映射中,當我改變模板下面的,我把內容輸出:
<DataTemplate x:Key="TabItemHeaderTemplate">
<Grid>
<TextBlock Text="{Binding Header}"/>
<Ellipse Fill="Red" Width="40" Height="40" Margin="0,20,0,0"/>
</Grid>
</DataTemplate>
<DataTemplate x:Key="TabItemContentTemplate">
<Ellipse Fill="Green"/>
</DataTemplate>
<Style x:Key="TabItemContainerStyle" TargetType="Controls:TabItemEx">
<Setter Property="Header" Value="{Binding}"/>
<Setter Property="HeaderTemplate"
Value="{StaticResource TabItemHeaderTemplate}"/>
<Setter Property="Content" Value="{Binding}"/>
<Setter Property="ContentTemplate"
Value="{StaticResource TabItemContentTemplate}"/>
</Style>
有沒有人有一個想法是什麼,我做錯了這裏?
在此先感謝!
有很多的工作來重現你的場景與給定的代碼 - 也許你可以減少這個問題? – 2010-11-16 22:40:24