gpt4 book ai didi

WPF 在控件上同时设置 DataTemplate 和 ControlTemplate 不起作用

转载 作者:行者123 更新时间:2023-12-05 02:24:00 26 4
gpt4 key购买 nike

我显然在这里遗漏了一些非常基本的东西。我发现了类似的问题,但从所有答案中我都无法理解我做错了什么。

当我设置 ControlTemplate 时,我的 DataTemplate 没有被拾取。

我已经为我的问题创建了一个非常简单的示例:

<Window x:Class="WpfTesterProject.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfTesterProject"
Title="Window1" Height="300" Width="300">

<Window.Resources>
<DataTemplate DataType="{x:Type local:Person}">
<StackPanel>
<TextBlock Text="{Binding FirstName}" />
<TextBlock Text="{Binding LastName}" />
</StackPanel>
</DataTemplate>
</Window.Resources>

<ContentControl Content="{Binding Content}">
<ContentControl.Template>
<ControlTemplate>
<Border BorderBrush="Blue" BorderThickness="2">
<ContentPresenter />
</Border>
</ControlTemplate>
</ContentControl.Template>
</ContentControl>
</Window>

我想做的是选择在运行时加载的用户定义的数据模板,但我也想,例如,包装边框中的每个元素,无论用户模板是什么,即使他没有指定任何完全没有模板。

根据我从类似问题中读到的内容,我必须使用 <ContentPresenter />在 ControlTemplate 中,但结果与删除它时的结果相同 - 仅显示边框。

最佳答案

我复制了你的申请。看来问题出在 ControlTemplateTargetType 属性中:

<ContentControl Content="{Binding}">
<ContentControl.Template>
<ControlTemplate TargetType="ContentControl">
<Border BorderBrush="Blue" BorderThickness="2">
<ContentPresenter />
</Border>
</ControlTemplate>
</ContentControl.Template>
</ContentControl>

关于WPF 在控件上同时设置 DataTemplate 和 ControlTemplate 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17342904/

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