Partager via


Concepteurs composites personnalisés - Présentateur d'éléments de workflow

Le WorkflowItemPresenter est un type clé dans le modèle de programmation du concepteur WF qui permet la création d'une "zone de dépôt" où une activité arbitraire peut être placée. Cet exemple montre comment générer un concepteur d’activités qui fait apparaître ce type de « zone de dépôt ».

L’exemple WorkflowItemPresenter illustre :

  • Création d'un concepteur d'activités personnalisées avec un WorkflowItemPresenter.

  • Inscription du concepteur personnalisé à l'aide du magasin des métadonnées.

  • Programmation de la boîte à outils réhébergée de manière déclarative et impérative.

Détails de l'exemple

Le code de cet exemple montre :

  • Le concepteur d’activités personnalisé est conçu pour la SimpleNativeActivity classe.

  • La création d'un concepteur d'activités personnalisées avec un WorkflowItemPresenter.

<sap:ActivityDesigner x:Class="Microsoft.Samples.UsingWorkflowItemPresenter.SimpleNativeDesigner"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sap="clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation"
    xmlns:sapv="clr-namespace:System.Activities.Presentation.View;assembly=System.Activities.Presentation">
    <sap:ActivityDesigner.Resources>
        <DataTemplate x:Key="Collapsed">
            <StackPanel>
                <TextBlock>This is the collapsed view</TextBlock>
            </StackPanel>
        </DataTemplate>
        <DataTemplate x:Key="Expanded">
            <StackPanel>
                <TextBlock>Custom Text</TextBlock>
                <sap:WorkflowItemPresenter Item="{Binding Path=ModelItem.Body, Mode=TwoWay}"
                                        HintText="Please drop an activity here" />
            </StackPanel>
        </DataTemplate>
        <Style x:Key="ExpandOrCollapsedStyle" TargetType="{x:Type ContentPresenter}">
            <Setter Property="ContentTemplate" Value="{DynamicResource Collapsed}"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=ShowExpanded}" Value="true">
                    <Setter Property="ContentTemplate" Value="{DynamicResource Expanded}"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </sap:ActivityDesigner.Resources>
    <Grid>
        <ContentPresenter Style="{DynamicResource ExpandOrCollapsedStyle}" Content="{Binding}" />
    </Grid>
</sap:ActivityDesigner>

Notez l'utilisation de la liaison de données WPF pour lier à ModelItem.Body. ModelItem est la propriété de ActivityDesigner qui fait référence à l'objet sous-jacent pour lequel le concepteur est utilisé, dans ce cas, SimpleNativeActivity.

Configurer, générer et exécuter l’exemple

  1. Ouvrez la solution dans Visual Studio.

  2. Appuyez sur F5 pour compiler et exécuter l’application.

Voir aussi