2016-09-29 4 views
-2

배열에 바인딩하는 TabControl에 TabItem에 다른 아이콘/이미지를 추가해야합니다. HAML 코드 : 당신은 당신을 TabControl에서 ItemTemplateSelector을 설정해야WPF, TabItem 이미지

<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 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