2016-09-29 8 views
-2

配列にバインドするTabControlは、TabItemに異なるアイコン/画像を追加する必要があります。 HAMLコード:WPF、TabItem Images

<Grid> 
     <TabControl VirtualizingPanel.VirtualizationMode="Recycling" Style="{StaticResource TabControl}" 
     ItemsSource="{Binding Workspaces}" SelectedIndex="{Binding CurrentPage,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"> 
     <TabControl.ItemContainerStyle> 
      <Style BasedOn="{StaticResource TabItem}" TargetType="{x:Type TabItem}"> 
       <Setter Property="Header" Value="{Binding HeaderText}"/> 
      </Style> 
     </TabControl.ItemContainerStyle> 
     <TabControl.ContentTemplate> 
      <DataTemplate> 
       <ContentPresenter Content="{Binding Content}" /> 
      </DataTemplate> 
     </TabControl.ContentTemplate> 
    </TabControl> 
</Grid> 
+1

を質問?これまでに何を試しましたか?あなたのコードを投稿してください!あなたがそれを走らせたとき何が起こったのですか?代わりに何が起こると思いますか?具体的に何が問題になっていますか? – Robert

答えて

0

あなたのTabControlのでItemTemplateSelectorを設定する必要があります。

<TabControl VirtualizingPanel.VirtualizationMode="Recycling" Style="{StaticResource TabControl}" 
    ItemsSource="{Binding Workspaces}" SelectedIndex="{Binding CurrentPage,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" 
    ItemTemplateSelector="{StaticResource myItemDataTemplateSelector}" > 

あなたTemplateSelectorは次のようになります。

public class MyItemDataTemplateSelector : DataTemplateSelector 
{ 
    public override DataTemplate SelectTemplate(object item, DependencyObject container) 
    { 
     FrameworkElement element = container as FrameworkElement; 

     if (element != null && item != null && item is MyItem) 
     { 
      var myItem = item as MyItem; 
      var window = Application.Current.MainWindow; 

      switch (myItem.SpecialFeatures) 
      { 
       case SpecialFeatures.None: 
        return 
         element.FindResource("Item_None_DataTemplate") 
         as DataTemplate; 
       case SpecialFeatures.Color: 
        return 
         element.FindResource("Item_Color_DataTemplate") 
         as DataTemplate; 
      } 
     } 

     return null; 
    } 
} 

参考:ある何https://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol.itemtemplateselector(v=vs.110).aspx

関連する問題