Как связать поле Activity <bool>NativeActivity с TextBox в Designer - PullRequest
0 голосов
/ 25 июня 2019

Я создаю пользовательское действие на основе NativeActivity. Это в то время как с ограниченным количеством попыток - просто если код внутри не решает проблему в X попытках, он выдает ошибку. Может, это звучит странно, но мне все равно, зачем мне это нужно.

У меня уже есть рабочий код для решения моей идеи. Но я застрял с дизайнером.

Действие предоставляет поле, которое я могу установить в окне свойств: enter image description here

[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> и установить его также в

дизайнера
...