Привет всем,
В моем пользовательском действии, когда я помещаю действие в WorkflowItemPresenter
, , сохраняю и компилирую , мое действие внезапно исчезает , и я не понимаю, почему. Возможно, я где-то совершаю какую-то ошибку, но не вижу этого. Я вернулся и убедился, что мой код соответствует требованиям, удалил и заново добавил мою сборку, содержащую пользовательские действия, на случай, если это может быть просто случайностью. После чего, когда я пытаюсь скомпилировать из проекта ссылки на мои пользовательские действия. Он работает, но выбрасывает ArgumentNullException
. Я попытался передать это bools, условные выражения и просто о муравейнике, иначе это заняло бы все, заканчивающиеся тем же самым результатом. Любые предложения по поиску и устранению неисправностей, чтобы попробовать в этом случае или очевидные вещи отсутствуют?
Вот моя ссылка на мое состояние ActivityFunc <bool> Condition
.
<sap:WorkflowItemPresenter
HintText="Add Trigger conditional activities here"
Item="{Binding Path=ModelItem.Condition.Handler}"
Height="40"
/>
Вот моя ссылка на ребенка, которого я хочу запланировать после того, как условие вернет true public ActivityAction Child
.
<sap:WorkflowItemPresenter
HintText="Add activies that happen on trigger firing"
Item="{Binding Path=ModelItem.Child.Handler}"
Height="40"/>
Вот мое Пользовательское занятие
[Designer(typeof(TriggerDesigner)),
Description("Creates a Trigger for use by trigger conditionals"), ToolboxCategory(ToolboxCategoryAttribute.Trigger),
ToolboxBitmap(typeof(Shaolin.Activities.ToolboxIconAttribute), "ToolboxIcons.CreateImportContext")]
public sealed class Trigger : NativeActivity
{
/// <summary>
/// The initial Condition that determines if the trigger should be scheduled
/// </summary>
/// <value>The condition.</value>
public ActivityFunc<bool> Condition { get; set; }
/// <summary>
/// The resulting action that is scheduled if the Condition is true
/// </summary>
/// <value>The child.</value>
public ActivityAction Child { get; set; }
/// <summary>
/// Gets or sets the value holding whether or not the trigger matches the condition
/// </summary>
/// <value>The type of the match.</value>
public MatchType MatchType{ get; set; }
/// <summary>
/// Perform evaluation of Condition; if is true then schedules Child
/// </summary>
/// <param name="context">The execution context in which the activity executes.</param>
protected override void Execute(NativeActivityContext context)
{
context.ScheduleFunc<bool>(this.Condition, new CompletionCallback<bool>(OnConditionComplete));
}
/// <summary>
/// Called from Execute when Condition evaluates to true.
/// </summary>
/// <param name="context">The context.</param>
/// <param name="instance">The instance.</param>
/// <param name="result">if set to <c>true</c> [result].</param>
public void OnConditionComplete(NativeActivityContext context, ActivityInstance instance, bool result)
{
//check if Condition evaluation returns true
if (result)
{
//If so then schedule child Activity
context.ScheduleAction(Child);
}
}
}
}