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
Öppna därefter -lösningen i Visual Studio.
Tryck på F5 för att kompilera och köra programmet.