用户控件和DataTemplate中的WPF,Blend触发器

时间:2011-02-02 14:07:21

标签: wpf silverlight

当我在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。

由于

1 个答案:

答案 0 :(得分:0)

它与名望镜有关。因为您未在TargetObject上指定ChangePropertyAction,所以它会更改名称范围中根元素的属性,这是第一种情况DataTemplate。对于用户控件,范围中的根元素是用户控件,其背景已更改。