Dela via


Anpassade sammansatta designers – Presentatör av arbetsflödesobjekt

WorkflowItemPresenter är en nyckeltyp i WF-designerns programmeringsmodell som gör det möjligt att skapa en "släppzon" där en godtycklig aktivitet kan placeras. Det här exemplet visar hur du skapar en aktivitetsdesigner som visar en sådan "släppzon".

Exemplet WorkflowItemPresenter visar:

  • Skapa en anpassad aktivitetsdesigner med en WorkflowItemPresenter.

  • Registrera den anpassade designern med hjälp av metadatalagret.

  • Programmering av den omvärdade verktygslådan deklarativt och imperativt.

Exempelinformation

Koden för det här exemplet visar:

  • Den anpassade aktivitetsdesignern har skapats SimpleNativeActivity för klassen.

  • Skapa en anpassad aktivitetsdesigner med en 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>

Observera användningen av WPF-databindning för att binda till ModelItem.Body. ModelItem är egenskapen på ActivityDesigner som refererar till det underliggande objekt som designern används för, i det här fallet SimpleNativeActivity.

Konfigurera, skapa och köra exemplet

  1. Öppna därefter -lösningen i Visual Studio.

  2. Tryck på F5 för att kompilera och köra programmet.

Se även