Condividi tramite


Progettisti di compositi personalizzati - Presentatore dell'elemento del flusso di lavoro

WorkflowItemPresenter è un tipo di chiave nel modello di programmazione della finestra di progettazione WF che consente la creazione di una "zona di rilascio" in cui è possibile inserire un'attività arbitraria. Questo esempio illustra come creare un ActivityDesigner che espone tale "zona di rilascio".

L'esempio WorkflowItemPresenter illustra:

  • Creazione di un ActivityDesigner personalizzato con un oggetto WorkflowItemPresenter.

  • Registrazione del designer personalizzato utilizzando l'archivio metadati.

  • Programmazione della casella degli strumenti riallocata in modo dichiarativo e imperativo.

Dettagli di esempio

Il codice per questo esempio mostra:

  • L'ActivityDesigner personalizzato viene compilato per la SimpleNativeActivity classe .

  • Creazione di un ActivityDesigner personalizzato con un oggetto 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>

Si noti l'utilizzo del data binding in WPF per associarsi a ModelItem.Body. ModelItem è la proprietà su ActivityDesigner che fa riferimento all'oggetto sottostante per cui viene utilizzato l'editor, in questo caso SimpleNativeActivity.

Configurare, compilare ed eseguire l'esempio

  1. Aprire la soluzione in Visual Studio.

  2. Premere F5 per compilare ed eseguire l'applicazione.

Vedere anche