WPF, триггеры смешивания в UserControl и DataTemplate - PullRequest
0 голосов
/ 02 февраля 2011

Может кто-нибудь объяснить мне разницу между использованием UserControl и DataTemplate при использовании триггеров интерактивности Expression Blend в WPF:

Когда я использую триггер в 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 голосов
/ 02 февраля 2011

Это как-то связано с именными областями.Поскольку вы не указали TargetObject для ChangePropertyAction, это изменяет свойство корневого элемента в области имен, которая в первом случае является DataTemplate.В случае пользовательского элемента управления корневым элементом в области действия является пользовательский элемент управления, и его фон изменяется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...