在下面的XAML中,我试图将各种DataTemplates直接绑定到Grid ContentPresenter。我把Button放在Grid中只是为了向自己证明ContentTemplate是绑定的并且DataTriggers正常工作 - 它们是什么(注意我此时不想要任何类型的控制)。
如果我替换<Button
&gt;与<ContentPresenter
&gt;没有出现。
显然我在这里错过了一些非常简单的东西。
<DataTemplate x:Key="MyTemplate">
<Grid Style="{StaticResource GridAllocatedStyle}">
<Ellipse Stroke="#FF5A71FB"
StrokeThickness="0.5"
Style="{StaticResource EllipseFinanciallyAllocatedStyle}" />
<TextBlock Style="{StaticResource TextBlockInsideEllipseStyle}"
Text="A"
ToolTip="Allocated" />
</Grid>
</DataTemplate>
<DataTemplate x:Key="AllocationTemplate">
<Grid>
<Button> <!-- I want to bind to the Grid.ContentPresenter here -->
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding Allocated}" Value="PreAllocatedBoth">
<Setter Property="ContentTemplate" Value="{StaticResource MyTemplate}" />
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
</Grid>
</DataTemplate>
为了完整性,这正是我想要实现的目标:
<DataTemplate x:Key="AllocationTemplate">
<Grid>
<Grid.Style>
<Style TargetType="Grid">
<Style.Triggers>
<DataTrigger Binding="{Binding Allocated}" Value="None">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
<ContentPresenter> <!-- I want to bind to the Grid.ContentPresenter here -->
<ContentPresenter.Style>
<Style TargetType="ContentPresenter">
<Style.Triggers>
<DataTrigger Binding="{Binding Allocated}" Value="FinanciallyAllocated">
<Setter Property="ContentTemplate" Value="{StaticResource MyTemplate}" />
</DataTrigger>
</Style.Triggers>
</Style>
</ContentPresenter.Style>
</ContentPresenter>
</Grid>
</DataTemplate>
答案 0 :(得分:0)
可能没有显示任何内容,因为您的contentPresenter
中没有设置任何内容?
p.s。:看起来你有很多与你的问题无关的代码(椭圆样式,许多模板)。这需要一段时间才能完成所有这些代码,所以我要求删除不需要的代码。