特定のブール値に従って、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>
誰かがこれを修正する方法の手がかりを持っている場合は、私に知らせてください。