Bagikan melalui


Perancang Gabungan Kustom - Penyaji Item Alur Kerja

WorkflowItemPresenter adalah jenis kunci dalam model pemrograman perancang WF yang memungkinkan pembuatan "drop zone" di mana aktivitas arbitrer dapat ditempatkan. Sampel ini menunjukkan cara membangun perancang aktivitas yang menampilkan "drop zone" sedemikian rupa.

Sampel WorkflowItemsPresenter menunjukkan:

  • Membuat perancang aktivitas kustom dengan WorkflowItemPresenter.

  • Mendaftarkan perancang kustom menggunakan penyimpanan metadata.

  • Memprogram kotak alat yang dihosting ulang secara deklaratif dan imperatif.

Detail Sampel

Kode untuk sampel ini menunjukkan:

  • Perancang aktivitas kustom dibangun untuk kelas SimpleNativeActivity.

  • Pembuatan perancang aktivitas kustom dengan 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>

Perhatikan penggunaan pengikatan data WPF untuk mengikat ke ModelItem.Body. ModelItem adalah properti pada ActivityDesigner yang mengacu pada objek yang mendasar yang digunakan perancang, dalam hal ini, SimpleNativeActivity.

Menyiapkan, membangun, dan menjalankan sampel

  1. Buka solusi di Visual Studio.

  2. Menekan F5 untuk mengompilasikan dan menjalankan aplikasi.

Lihat juga