如何从字符串创建UserControl

时间:2015-06-02 14:05:40

标签: c# wpf user-controls

是否有一种从字符串创建UserControl的简洁方法?

我想避免这样的硬编码:

if (tool.ToolName == "Image_Tool") { ctl = new Image_Tool() as UserControl; }

Image_Tool是现有的UserControl。从解析文件夹中检索ToolName以获取UserControl的文件名。

愿意做这样的事情:

UserControl ctl = new tool.toolName() as UserControl

那是“天上的馅饼”吗? PHP有一种方法可以将字符串转换为变量......想知道C#是否有某种方法可以做到这一点?

感谢。

汉斯,尝试了你的建议,但现在获得了此代码的TypeLoadException:

  ObjectHandle handle = Activator.CreateInstance("AutomationSystem", tool.ToolName);
            Object o = handle.Unwrap();
            ctl = o as UserControl;

这是一个Windows应用程序,而不是一个Web应用程序,因此不存在dll,只有exe。

1 个答案:

答案 0 :(得分:0)

所以汉斯是对的。我的命名空间错误。以下是我解决这个问题的方法:

ObjectHandle handle = Activator.CreateInstance(null, "AutomationSystem.Toolbox."+tool.ToolName);
                Object o = handle.Unwrap();

                ctl = o as UserControl;