Как выполнить команду для элемента шаблона управления? - PullRequest
0 голосов
/ 06 марта 2020

Я хочу создать пользовательский элемент управления, который использует пользовательский bru sh. Идея состоит в том, что, когда я выполняю команду в пользовательском элементе управления, я хочу, чтобы она отфильтровывалась до компонента в шаблоне. Мой первый проход выглядит примерно так:

<Style TargetType="trrfc:QuantityControl">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="trrfc:QuantityControl">
                <Border>
                    <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                      VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
                        <ContentPresenter.Foreground>
                            <trrfc:AnimatedColorBrush StartColor="Red"
                                                      Animate="{Binding Mode=TwoWay, RelativeSource={RelativeSource  TemplatedParent}, Path=Animate}"
                                                      Duration="00:00:05"/>
                        </ContentPresenter.Foreground>
                    </ContentPresenter>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

То есть я хочу выполнить команду для AnimatedColorBru sh. Это правильный способ сделать это?

1 Ответ

0 голосов
/ 06 марта 2020

Как выполнить команду для элемента управления?

В этом сценарии вы можете использовать InvokeCommandAction, где в XamlBehaviors подходящая библиотека.

Например, если вы хотите вызвать команду при нажатии кнопки. Вы можете использовать EventTriggerBehavior для обнаружения события щелчка, а затем вызвать InvokeCommandAction, как показано ниже.

<Button x:Name="MyButton">
    <Interactivity:Interaction.Behaviors>
        <Interactions:EventTriggerBehavior EventName="Click" SourceObject="{Binding ElementName=MyButton}">
            <Interactions:InvokeCommandAction Command="{Binding UpdateCountCommand}"/>
        </Interactions:EventTriggerBehavior>
    </Interactivity:Interaction.Behaviors>
</Button>
...