Partager via


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

Le WorkflowItemPresenter est un type de clé dans le modèle de programmation du concepteur WF qui permet de créer une « zone de dépôt » pour y placer une activité arbitraire. 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 façon déclarative et impérative.

Détails de l'exemple

Le code de cet exemple illustre les points suivants :

  • Le concepteur d'activités personnalisées est généré pour la classe SimpleNativeActivity.

  • 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é sur ActivityDesigner qui 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