Обычная активность, связанная с файлом активности - PullRequest
0 голосов
/ 06 июля 2011

Как я могу использовать пользовательский код (файл активности, а не codeactivity и Activitydesginer) в качестве действия внутри дизайнера рабочего процесса Reshosted?

Я делал следующее для любого действия, которое я строю для каждого (codeactivity & Activitydesginer)) файлы и wirte:

            new ToolboxCategory("new Toolbox")
                {                        
                   Tools=
                   {
                        new ToolboxItemWrapper(typeof(Flowchart)),
                        new ToolboxItemWrapper(typeof(SimpleWebDesigner.TEST)),

.... и т.д.

AnyHelp?

1 Ответ

1 голос
/ 06 июля 2011

Если вы говорите о загрузке действия, загруженного из свободного файла xaml, вы можете сделать это.

Вы должны использовать класс ActivityXamlServices, чтобы загрузить (имя файла) файл во время выполнения.Когда вы делаете это, вы получаете десериализованный экземпляр Activity.Конечно, у вас должны быть любые соответствующие сборки (любые сборки, на которые ссылается Activity, определенные в файле xaml), либо загруженные в AppDomain, либо доступные для загрузки там, где их может найти загрузчик Fusion.

Как только вы это сделаете, выможет создать ToolboxItemWrapper, передавая activityInstance.GetType().

Одна вещь, поскольку xaml-файл Activity - это Activity, которая содержит другие Activity, вы получите конструктор по умолчанию, который показывает только пустой заголовок.Нет простого способа * развернуть дочерние действия, определенные в файле xaml в конструкторе, когда вы отбрасываете их на поверхность конструктора.

* Я считаю, что вы можете создать класс, который реализует IActivityTemplateFactory который вы можете передать ToolboxItemWrapper, который может передавать корневую активность, определенную в вашем файле xaml, так что при перетаскивании элемента из панели инструментов он автоматически добавит все дочерние действия, определенные в файле xaml.Но я никогда этого не делал и не уверен, что сможешь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...