c# - 在运行时加载嵌入在 DLL 中的 WPF 控件

标签 c# .net wpf xaml user-controls

在我的 WPF 项目中,我有一个包含多个 WPF 用户控件的 dll。我希望在运行时能够检查数据库中的参数(已实现)并根据该参数(它是一个字符串)能够将特定的 UserControl 加载到我的 View 中。

UserControl 实际上是一个 Canvas,所以它基本上只是根据数据库条目将正确的 Canvas 放置在 View 上。

不知道我说的对不对,有不懂的可以问我。

感谢所有帮助者!

最佳答案

这种在运行时从 dll 加载控件或类似东西的概念称为 Reflection在某些情况下,这是一种常见的做事方式。尝试在 C# 中搜索反射,你会发现很多关于它的教程。

基本上您将在运行时加载 dll。然后你会寻求控制。找到它后,您将创建它的实例并使用它。这一切都将在运行时发生

  UserControl myControl = null;    
  Assembly asm = Assembly.LoadFile(Your dll path);
  Type[] tlist = asm.GetTypes();
  foreach (Type t in tlist)
  {
     if(t.Name == "Your class name" )
     {
         myControl = Activator.CreateInstance(t) as UserControl;
         break;
     }               
  }

另见 this question供引用

关于c# - 在运行时加载嵌入在 DLL 中的 WPF 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7872934/

相关文章:

c# - WPF 数据网格样式错误 IDataErrorInfo

c# - 如何获取选中的 ListView 项?

c# - 对于从 IEnumerable<T> 继承的 .Net 类,为什么 GetEnumerator 在 COM 中不可见?

c# - VS 2008 中的 Web 部署项目工具

c# - 我可以将 JSON.NET 与我的商业应用程序一起分发吗?

c# - "Insufficient resources to perform operation."MSMQ 当事务包含多条消息时

WPF如何知道多个按钮中当前按下的按钮

c# - 使用方法对数组的值求和

c# - 如何在新的EXCEL表中写入数据

c# - 动态修改 RouteValueDictionary