显然我在这里缺少非常基础的东西。我找到了类似的问题,但从答案中没有一个能让我理解我做错了什么。
当我设置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>
我想要做的是在运行时选择用户定义的数据模板,同时我还想例如将每个单独的元素都包裹在边框中,不论用户模板是什么,甚至如果他没有指定任何模板。 从我阅读类似问题的文章得知,我必须在ControlTemplate中使用,但结果与删除它相同 - 只显示边框。
new { Content=any_object_possible }
。 - Markos