gpt4 book ai didi

c# - 自定义 TabItem 数据模板

转载 作者:行者123 更新时间:2023-11-30 12:30:41 25 4
gpt4 key购买 nike

如何在 WPF 中为 TabItem 制作 DataTemplate 并在每个 TabItem 中自定义其内容?

我需要这个:

<TabControl>
<TabControl.ContentTemplate>
<DataTemplate>
<Label Content="Name" Name="label1" />
<TextBox Name="name" />
...
</DataTemplate>
</TabControl.ContentTemplate>
<TabItem Header="Add" Name="tabItem1">
<Grid Height="213">
<Button Content="Add" Name="button1" />
</Grid>
</TabItem>
<TabItem Header="Edit" Name="tabItem2">
<Grid>
<Button Content="Edit" Name="button2" />
</Grid>
</TabItem>
</TabControl>

但按钮不显示(仅显示 DataTemplate 的内容)。

最佳答案

将重复出现的模板作为资源放在 TabControl 中,然后使用 ContentPresenter 从特定 Tab 的 ContentTemplate 中引用它:

<TabControl>
<TabControl.Resources>
<DataTemplate x:Key="TabTemplate">
<Label Content="Name" Name="label1" />
</DataTemplate>
</TabControl.Resources>
<TabItem Header="Add" Name="tabItem1">
<TabItem.ContentTemplate>
<DataTemplate>
<Grid Height="213">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Content="Add" Name="button1" />
<ContentPresenter Grid.Row="1" ContentTemplate="{StaticResource TabTemplate}"/>
</Grid>
</DataTemplate>
</TabItem.ContentTemplate>
</TabItem>
<TabItem Header="Edit" Name="tabItem2">
<TabItem.ContentTemplate>
<DataTemplate>
<Grid Height="213">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Content="Edit" Name="button2" />
<ContentPresenter Grid.Row="1" ContentTemplate="{StaticResource TabTemplate}"/>
</Grid>
</DataTemplate>
</TabItem.ContentTemplate>
</TabItem>

除了 ContentPresenter 之外的所有内容在每个选项卡中都可以不同...

关于c# - 自定义 TabItem 数据模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15560090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com