WF4 Аргумент как собственность - PullRequest
0 голосов
/ 06 апреля 2011

Мой сценарий следующий: У меня есть рабочий процесс (давайте назовем его customActivity1), который выполняет основные действия для моей системы. У меня также есть другой рабочий процесс (customActivity2), который использует customActivity1 и выполняет действия более высокого уровня. Когда я вызываю customActivity1, я должен передать несколько параметров, таких как логические или строковые значения. Я хочу показать некоторые из этих параметров в виде флажка или комбинированного списка (чтобы разработчик customActivity2 мог передавать только допустимые значения) и обнаружил, что я могу сделать это, установив аргумент как PROPERTY (вместо In). Проведя исследование, я также обнаружил, что вы не можете напрямую использовать этот аргумент в выражениях, поэтому я продолжаю получать ошибки в моем customActivity1.

Тем не менее, зная, что мне нужно сузить то, что может передать дизайнер, как я могу это сделать, не используя дизайнер деятельности или где я могу найти ответ?

Я также приложил две картинки, одну из которых мне нужно, а другую - ошибку, которую я получаю. What I need

The error I'm getting

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 06 апреля 2011

Вы не можете сделать это. Вы можете привязываться только к InArguments.

Если вы связываете InArgument и смотрите на xaml, вы увидите что-то вроде этого:

<p1:MyActivity MyInArgument="[BoundValue]" ...

Workflow Runtime знает, как с этим справиться. Он не знает, как обрабатывать обязательные свойства POCO.

0 голосов
/ 07 апреля 2011

Если вы хотите смоделировать поток данных, но хотите иметь другой пользовательский интерфейс в сетке свойств, я рекомендовал использовать аргументы (поскольку они передают семантику потока данных) и настроить сетку свойств для этих аргументов.Существует пример, который демонстрирует, как это сделать в примерах WF4 (образец readme доступен по адресу http://msdn.microsoft.com/en-us/library/ee834515.aspx)

0 голосов
/ 06 апреля 2011

Причина, по которой InArgument показывает только текстовое поле вместо флажка, заключается в том, что они являются выражениями, а не литеральными значениями. Тем не менее, проверка типов по-прежнему выполняется, если вы введете значение 1, вы получите сообщение об ошибке, что целое число не может быть преобразовано в логическое значение.

...