我创建了自己的ExtendedTabControl以完全改变它的外观。它工作正常。我还创建了CloseableTabItem控件。它也有效。但是...到目前为止,我已经手动将CloseableTabItem放在我的ExtendedTabControl中:
<etc:ExtendedTabControl>
<etc:CloseableTabItem Header="First Item">
<...some content... />
</etc:CloseableTabItem>
</etc:ExtendedTabControl>
现在我想将ObservableCollection绑定到我的ExtendedTabControl。 Collection中的对象包含:header和contentText。我设置了ItemSource,确定,有效。但是如何让TabItem成为我的CloseableTabItems?更重要的是,如何将我的类对象绑定到CloseableTabItems?我注意到TabControl有一个名为ItemTemplate的属性,但设置它并不会完全改变它的外观。还有一个我无法改变的背景。所以一个外观起作用,但绑定不起作用或绑定起作用,但外观只是部分起作用。我能做什么?请帮忙。
答案 0 :(得分:0)
在您的ExtendedTabControl
代码中,您需要将为项目生成的项目容器更改为ClosableTabItem
:
public class ExtendedTabControl : TabControl
{
protected override DependencyObject GetContainerForItemOverride()
{
return new CloseableTabItem();
}
}
(有一种相关方法,IsItemItsOwnContainerOverride
,您可能还想覆盖)
TabControls
有两个您可以设置的模板,ContentTemplate
模板项目内容区域,ItemTemplate
应该模板标题。
要修改生成的标签页上的其他属性,请使用ItemContainerStyle
,{{3}}现在TargetType
为ClosableTabItem
。