我使用此代码在Designer中创建工具栏,但它不会检索状态机的所有元素,如最终状态。加载状态机的所有元素的正确名称空间是什么?
private static ToolboxControl CreateToolboxControlshahram() {
const string @namespace = "System.Activities.Statements";
var toolbox = new ToolboxControl();
var cat = new ToolboxCategory(@namespace);
ToolboxItemWrappers(typeof(Flowchart).Assembly, @namespace).ToList().ForEach(cat.Add);
if (cat.Tools.Count > 0)
toolbox.Categories.Add(cat);
return toolbox;
}
private static IEnumerable<ToolboxItemWrapper> ToolboxItemWrappers(Assembly assembly, string @namespace) {
if (assembly == null) {
throw new ArgumentNullException("assembly");
}
if (string.IsNullOrEmpty(@namespace)) {
return Enumerable.Empty<ToolboxItemWrapper>();
}
var q = from type in assembly.GetTypes()
where string.Equals(type.Namespace, @namespace)
&& type.IsPublic && !type.IsNested && !type.IsAbstract
&& type.GetConstructor(Type.EmptyTypes) != null
orderby type.Name
select new ToolboxItemWrapper(type);
return q;
}
答案 0 :(得分:1)
最后我找到了最终状态: 最终状态处于不同的程序集中,我必须编写此代码才能将其添加到我的程序集中 工具箱
ToolboxItemWrapper(typeof ( System.Activities.Core.Presentation.FinalState))