我理解WorkflowDesigner
可以通过多种方式接收拖动的项目,例如:
是否有可能类似于这两种拖放机制,我可以将xaml活动拖到设计器中?我想到的是这个,
假设您有一个包含多个xaml文件的ListView
。我希望能够拖动其中一个ListView
项(即其中一个xaml文件),当我将它拖到设计器上时,它就好像我从工具箱中拖出一些东西(除了活动将是从xaml提供)。我知道我可以使用Activity
从文件创建运行时ActivityXamlServices.Load(filename)
,我希望将此活动插入到放置位置。但是当我拖放时如何告诉应用程序理解这一点?
答案 0 :(得分:1)
鉴于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);
应用程序将进入拖放模式。设计师将收到drop作为活动。
答案 1 :(得分:0)
您无法执行此操作,因为需要编译添加到工作流的活动。当您在VS2010中创建XAML活动并编译项目时,生成的编译活动类型将添加到工具箱中,而不是对您创建的XAML文件的引用。