如何在WPF中的TabControls中使用customTabItem

时间:2018-01-23 04:57:55

标签: c# wpf xaml tabcontrol

我使用TabControl ItemSource作为列表。基于List,TabItems正在生成。

 <TabControl  Width="Auto"  VerticalAlignment="Top" ItemsSource="{Binding MyTabItems, Mode=TwoWay}"  HorizontalAlignment="Stretch">

            <TabControl.Resources>
                <Style TargetType="{x:Type TabItem}" BasedOn="{StaticResource TabItemStyle}" >
                    <Setter Property="FontSize" Value="10pt"/>
                </Style>
            </TabControl.Resources>
        </TabControl>

我创建了自己的MyTabItem类继承自TabItem。我想在此MyTabItem中使用TabControl

有人可以建议一种方法吗?

2 个答案:

答案 0 :(得分:0)

使用DataTemplate

 <TabControl x:Name="tabCases" IsSynchronizedWithCurrentItem="True" Controls:ClosableTabItem.TabClose="TabClosed">
    <TabControl.ItemTemplate>
        <DataTemplate>
            <Controls:MyTabItem >
                <TextBlock Text="{Binding Path=Id}" />
            </Controls:MyTabItem >
        </DataTemplate>
    </TabControl.ItemTemplate>
    </TabControl>

答案 1 :(得分:0)

如果要将容器的类型从import React from 'react'; import RootContainer from './src/components/containers/root-container'; import { PersistGate } from 'redux-persist/lib/integration/react'; import { persistor } from './src/configureStore'; export default class App extends React.Component { render() { return ( <PersistGate loading={null} persistor={persistor}> <RootContainer /> </PersistGate> ); } } 更改为自定义类型,则应创建自定义TabItem并覆盖其TabControl方法:

GetContainerForItemOverride()

当然,您还必须使用此自定义类型而不是XAML中的内置类型:

public class MyTabControl : TabControl
{
    protected override DependencyObject GetContainerForItemOverride()
    {
        return new MyTabItem();
    }
}