我正在尝试根据特定的布尔值更改 WPF 应用程序中对象的 DataTemplate。当值为“True”时,我希望 DataTemplate 成为某种东西,而当该值为“False”时,我希望 DataTemplate 成为其他东西。
我试过写这段代码,但到目前为止,我得到了一个烦人的“内存不足异常”。
<DataTemplate DataType="{x:Type vm:MyObjectViewModel}">
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Visible}" Value="False">
<Setter TargetName="MainTemplateGrid" Property="Content">
<Setter.Value>
<Ellipse Width="50" Height="50" Fill="Red" />
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Visible}" Value="True">
<Setter TargetName="MainTemplateGrid" Property="Content">
<Setter.Value>
<Image Source="{Binding Icon}" Opacity="{Binding Visible, Converter={StaticResource VisibilityConverter}}" />
</Setter.Value>
</Setter>
</DataTrigger>
</DataTemplate.Triggers>
<ContentControl x:Name="MainTemplateGrid" />
</DataTemplate>
如果有人知道如何解决这个问题,请告诉我。