Я создаю пользовательское действие на основе NativeActivity
. Это в то время как с ограниченным количеством попыток - просто если код внутри не решает проблему в X попытках, он выдает ошибку. Может, это звучит странно, но мне все равно, зачем мне это нужно.
У меня уже есть рабочий код для решения моей идеи. Но я застрял с дизайнером.
Действие предоставляет поле, которое я могу установить в окне свойств:
[Category("Input")]
[RequiredArgument]
public Activity<bool> Condition { get; set; }
, который может дать ответ на условие while - если он должен продолжить снова. Если да, снова запустите последовательность внутри.
Но у меня проблема с созданием конструктора, который мог бы преобразовать выражение значения в Activity<bool>
.
Я могу создать конструктор с ArgumentToExpressionConverter
, но он работает только с InArgument<bool>
объектом, а не с Activity<bool>
объектом. Как показано ниже:
<sap:ActivityDesigner ...
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:conv="clr-namespace:System.Activities.Presentation.Converters;assembly=System.Activities.Presentation"
xmlns:sapv="clr-namespace:System.Activities.Presentation.View;assembly=System.Activities.Presentation"
...
...
<conv:ArgumentToExpressionConverter x:Key="expressionConverter" />
...
<sapv:ExpressionTextBox Expression="{Binding Path=ModelItem.Condition, Converter={StaticResource expressionConverter}, ConverterParameter=In}"
ExpressionType="s:Boolean" OwnerActivity="{Binding ModelItem}"/>
Как я могу сделать и то и другое - использовать свое состояние в качестве Activity<bool>
и установить его также в
дизайнера