【发布时间】:2019-08-28 18:36:10
【问题描述】:
我正在尝试使用 C# 和 WPF 创建一个范围以包含一组活动,以便在 UiPath 中使用。
我可以使用以下类创建自定义活动
using System.Activities;
namespace Custom_Activities
{
public sealed class Scoped_Activity : Scoped_Activity_Template
{
protected override void Execute(CodeActivityContext context)
{
System.Console.WriteLine("Custom Activity Executing");
}
}
}
并且我可以使用以下类创建一个范围来包含此活动
using System.Activities;
namespace Custom_Activities
{
public class Custom_Activity_Scope : CodeActivity
{
protected override void Execute(CodeActivityContext context)
{
System.Console.WriteLine("Scope Executing");
}
}
}
以及下面的设计器文件
<sap:ActivityDesigner
x:Class="Custom_Activities.Custom_Activity_Scope_Designer"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sapc="clr-namespace:System.Activities.Presentation.Converters;assembly=System.Activities.Presentation"
xmlns:sapv="clr-namespace:System.Activities.Presentation.View;assembly=System.Activities.Presentation"
xmlns:sap="clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation"
xmlns:s="clr-namespace:System;assembly=mscorlib">
<sap:ActivityDesigner.Resources>
<ResourceDictionary x:Uid="ResourceDictionary_1">
<sapc:ArgumentToExpressionConverter x:Key="ArgumentToExpressionConverter" />
<sapc:ModelToObjectValueConverter x:Key="ModelToObjectValueConverter" />
<DataTemplate x:Key="Collapsed">
</DataTemplate>
<DataTemplate x:Key="Expanded">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<sap:WorkflowItemPresenter Grid.Row="0" Grid.Column="0" Margin="5" />
</Grid>
</DataTemplate>
<Style x:Key="ExpandOrCollapsedStyle" TargetType="{x:Type ContentPresenter}">
<Setter Property="ContentTemplate" Value="{DynamicResource Expanded}" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=ShowExpanded}" Value="false">
<Setter Property="ContentTemplate" Value="{DynamicResource Collapsed}" />
</DataTrigger>
</Style.Triggers>
</Style>
</ResourceDictionary>
</sap:ActivityDesigner.Resources>
<Grid>
<ContentPresenter Style="{DynamicResource ExpandOrCollapsedStyle}" Content="{Binding}" />
</Grid>
</sap:ActivityDesigner>
当我运行 Scoped_Activity 时,我得到了所需的输出(日志消息显示“自定义活动正在执行”)
当我运行 Custom_Activity_Scope 时,我得到了所需的输出(日志消息显示“范围执行”)
但是,当我将 Scoped_Activity 放在 Custom_Activity_Scope 中时,我只收到消息“范围执行”,因此 Scoped_Activity 似乎没有执行。
我不太确定在Custom_Activity_Scope 中执行Scoped_Activity 的下一步应该是什么
【问题讨论】:
-
当您说“当我将 Scoped_Activity 放置在 Custom_Activity_Scope 中时”是什么意思?继承?喜欢:公共类 Custom_Activity_Scope : Scoped_Activity
-
@user10728126,我已经为问题添加了截图,希望有意义/有帮助
-
Activities 中的两个 Execute 方法都只进行一些跟踪,没有搜索嵌套活动然后从中调用 Execute 的代码。 Custom_Activity_Scope 中必须有代码来搜索嵌套活动并显式执行它们,就像序列活动一样。
-
@recineshto 这是有道理的。范围是否仍然可以从 CodeActivity 继承/实现,环顾一些提到使用 NativeActivity 的网站?不要以为您有任何指向示例等的链接
-
@Conor,来自 SO stackoverflow.com/questions/7521696/… 的另一个示例,这次尝试模仿 Sequence :) 并且有执行控制
标签: c# wpf wpf-controls uipath