ItemTemplate - 工作错误。自定义外观和装订

时间:2012-01-22 01:34:33

标签: wpf data-binding custom-controls tabcontrol

我创建了自己的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的属性,但设置它并不会完全改变它的外观。还有一个我无法改变的背景。所以一个外观起​​作用,但绑定不起作用或绑定起作用,但外观只是部分起作用。我能做什么?请帮忙。

1 个答案:

答案 0 :(得分:0)

在您的ExtendedTabControl代码中,您需要将为项目生成的项目容器更改为ClosableTabItem

public class ExtendedTabControl : TabControl
{
    protected override DependencyObject GetContainerForItemOverride()
    {
        return new CloseableTabItem();
    }
}

(有一种相关方法,IsItemItsOwnContainerOverride,您可能还想覆盖)

TabControls有两个您可以设置的模板,ContentTemplate模板项目内容区域,ItemTemplate应该模板标题。

要修改生成的标签页上的其他属性,请使用ItemContainerStyle,{{3}}现在TargetTypeClosableTabItem