У меня есть ObservableCollection<Item>
, и я хочу установить его как свойство ItemsSource
для TabControl.Класс Item
содержит свойство TabItem
, которое возвращает System.Windows.Controls.TabItem
.Я хочу, чтобы TabControl отображал TabItem
s из коллекции.
(На самом деле, у класса "Item" много свойств.)
Код:
Класс предмета:
public class Item
{
public Item(TabItem tabItem)
{
this.TabItem = tabItem;
}
public TabItem TabItem { get; private set; }
}
TabControl XAML:
<TabControl x:Name="tabControl" />
Код:
this.tabControl.ItemsSource = new ObservableCollection<Item>()
{
new Item(new TabItem(){Header = "TabItem 1 Header", Content = "TabItem 1 Content"}),
new Item(new TabItem(){Header = "TabItem 2 Header", Content = "TabItem 2 Content"}),
new Item(new TabItem(){Header = "TabItem 3 Header", Content = "TabItem 3 Content"}),
new Item(new TabItem(){Header = "TabItem 4 Header", Content = "TabItem 4 Content"}),
new Item(new TabItem(){Header = "TabItem 5 Header", Content = "TabItem 5 Content"}),
};
Я пытался установить TabControl
s DisplayMemberPath
до "TabItem", но это не сработало.Мне не удалось заставить ItemTemplate
и ContentTemplate
фактически отобразить TabItem
(я мог бы привязать к Заголовку и Содержанию TabItems соответственно, но это не то, что я хочу).
ЕслиЯ использовал ObservableCollection<TabItem>
и установил ItemsSource
, он отображает TabItem
с, как вы ожидаете, но я не могу заставить его работать с этим дополнительным шагом.
Что я делаюнеправильно?Есть ли способ заставить это работать?