我想根據特定的布爾值更改我的WPF應用程序中的對象的DataTemplate。當值爲「True」時,我想讓DataTemplate成爲某些東西,當值爲「False」時,我想讓DataTemplate成爲其他東西。使用DataTriggers在運行時更改DataTemplates
我試過編寫這段代碼,但到目前爲止,我最終會遇到一個惱人的「內存異常」。
<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>
如果任何人有關於如何解決這個問題的線索,請讓我知道。
你應該首先聲明ContentControl中,然後DataTriggers。有時這對解決名稱引用很重要。 – LPL