【发布时间】:2010-12-17 18:46:57
【问题描述】:
以下代码有什么问题?
我在编译期间收到此错误:
属性“TargetName”不代表“Setter”的有效目标,因为未找到名为“cc”的元素。确保在使用它的任何设置器、触发器或条件之前声明目标。
我必须如何重构我的代码才能编译它而不会出错?
我只想切换一个 DataTrigger 绑定到我的 PersonViewModel 中的值的数据模板!
<ContentControl x:Name="cc" Grid.Column="1">
<DataTemplate>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=CurrentPersonViewModel.IsNew}" Value="True">
<Setter TargetName="cc" Property="ContentTemplate" Value="{DynamicResource NewPersonId}" />
</DataTrigger>
<DataTrigger Binding="{Binding Path=CurrentPersonViewModel.IsNew}" Value="False">
<Setter TargetName="cc" Property="ContentTemplate" Value="{DynamicResource SelectedPersonId}" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ContentControl>
【问题讨论】:
-
这看起来不对。您不会将
DataTemplate作为Content添加到ContentControl。我认为您在设置模板后不能(轻松)切换模板?相反,您可以根据DataContext中的数据切换一个模板内内容的可见性以显示/隐藏部分内容。
标签: wpf datatrigger contentcontrol