Aangepaste samengestelde ontwerpers - Presentator voor werkstroomitems
Het WorkflowItemPresenter is een belangrijk type in het programmeermodel WF Designer waarmee een 'drop zone' kan worden gemaakt waar een willekeurige activiteit kan worden geplaatst. In dit voorbeeld ziet u hoe u een activiteitsontwerper bouwt die een dergelijke 'drop zone' weergeeft.
In het voorbeeld WorkflowItemPresenter ziet u het volgende:
Een aangepaste activiteitontwerper maken met een WorkflowItemPresenter.
De aangepaste ontwerpfunctie registreren met behulp van het metagegevensarchief.
Programmeren van de opnieuw gehoste werkset declaratief en imperatief.
Voorbeelddetails
De code voor dit voorbeeld toont:
De ontwerpfunctie voor aangepaste activiteiten is gebouwd voor de
SimpleNativeActivity
klasse.Het maken van een aangepaste activiteitontwerper met een 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>
Let op het gebruik van WPF-gegevensbinding om verbinding te maken met ModelItem.Body
. ModelItem
is de eigenschap ActivityDesigner die verwijst naar het onderliggende object waarvoor de ontwerpfunctie wordt gebruikt, in dit geval SimpleNativeActivity.
Het voorbeeld instellen, bouwen en uitvoeren
Open de oplossing in Visual Studio.
Druk op F5 om de toepassing te compileren en uit te voeren.