Как я могу перетащить действие xaml в перепроектированный дизайнер WF4? - PullRequest
1 голос
/ 30 декабря 2010

Я понимаю, что WorkflowDesigner может получить перетаскиваемый элемент несколькими способами, например:

  • Перетаскивая элемент из панели инструментов и перетаскивая его в конструктор: пустое действие этогоТип будет вставлен в конструктор в месте размещения.
  • Можно также перетащить действие из конструктора и перетащить его в другое место в конструкторе, перетаскиваемое действие также будет вставлено в место размещения.

Возможно ли, что, подобно этим двум механизмам перетаскивания, я могу перетащить действие xaml в конструктор?Я имею в виду следующее:

Допустим, у вас есть ListView, содержащий несколько файлов xaml.Я хочу иметь возможность перетаскивать один из элементов ListView (т.е. один из файлов xaml), и когда я перетаскиваю его поверх дизайнера, он будет действовать так, как будто я перетаскиваю что-то из панели инструментов (за исключением того, что действие будет предоставленоXAML).Я знаю, что могу создать среду выполнения Activity из файла с помощью ActivityXamlServices.Load(filename), и я хочу, чтобы это действие было вставлено в место размещения.Но как заставить приложение понимать это, когда я перетаскиваю?

Ответы [ 2 ]

1 голос
/ 03 января 2011

Учитывая WorkflowDesigner designer, Activity activity и перетащите источник dataSource, используйте этот код (кредиты tilovell )

ModelItem mi = designer.Context.Services.GetService<ModelTreeManager>()
    .CreateModelItem(null, activity);
DataObject data = new DataObject(DragDropHelper.ModelItemDataFormat, mi);
DragDrop.DoDragDrop(dataSource, data, DragDropEffects.Copy);

Приложение перейдет в режим перетаскивания. Дизайнер получит каплю как активность.

0 голосов
/ 30 декабря 2010

Вы не можете сделать это, потому что действия, добавленные в рабочий процесс, должны быть скомпилированы. Когда вы создаете действие XAML и компилируете проект в VS2010, результирующий скомпилированный тип действия добавляется в набор инструментов, а не ссылку на созданный вами файл XAML.

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