2010-11-05 136 views
1

我有一個項目列表,其中每個項目都包含從用戶控件繼承的類型的顯示屬性。這個想法是每個繼承類可以自己決定爲用戶顯示什麼。該項目被自己安排在一個DataTemplate的標籤控制......像......WPF綁定到UserControl屬性

 <TabControl ItemsSource="{Binding FooList}"> 
      <TabControl.ItemTemplate> 
       <DataTemplate> 
        <TabItem Header="{Binding Name}"> 
         ??? 
        </TabItem> 
       </DataTemplate> 
      </TabControl.ItemTemplate> 
     </TabControl> 

而在FOO的ObservableCollection樣子類...

public class IFoo 
    { 
     public String Name { get; set; } 
     public UserControl Display { get; set; } 
     ... 
    } 

我可以」不知道是如何添加顯示屬性的地方???在XAML中。有沒有辦法做到這一點(試圖避免從代碼背後)?

回答

2

你需要做的是使用的TabControlItemContainerStyle屬性:

<TabControl ItemsSource="{Binding FooList}"> 
    <TabControl.ItemContainerStyle> 
     <Style TargetType="{x:Type TabItem}"> 
      <Setter Property="Header" Value="{Binding Name}" /> 
      <Setter Property="Content" Value="{Binding Display}" /> 
     </Style> 
    </TabControl.ItemContainerStyle> 
</TabControl>