当我在WPF中使用Expression Blend交互式触发器时,有人可以解释我使用UserControl和DataTemplate之间的区别:
当我在DataTemplate中使用触发器时 - 颜色不会变为黄色:
<DataTemplate DataType="{x:Type WpfApplication5:C1}">
<Grid>
<i:Interaction.Triggers>
<Core:DataTrigger Binding="{Binding Path=PctChange}" Comparison="GreaterThan" Value="0.5">
<Core:ChangePropertyAction PropertyName="Background" Value="Yellow"/>
</Core:DataTrigger>
</i:Interaction.Triggers>
</Grid>
</DataTemplate>
但是当我将网格复制到UserControl时 - 触发工作:
<DataTemplate DataType="{x:Type WpfApplication5:C1}">
<WpfApplication5:GridUserControl />
</DataTemplate>
Blend触发器的这种行为错误或功能是什么?
PS。 PctChange在所有情况下都超过0.5。
由于
答案 0 :(得分:0)
它与名望镜有关。因为您未在TargetObject
上指定ChangePropertyAction
,所以它会更改名称范围中根元素的属性,这是第一种情况DataTemplate
。对于用户控件,范围中的根元素是用户控件,其背景已更改。