Загрузка элемента управления WPF, встроенного в DLL, во время выполнения - PullRequest
1 голос
/ 24 октября 2011

В моем проекте WPF у меня есть DLL, которая содержит несколько пользовательских элементов управления WPF.Я хотел бы, чтобы во время выполнения можно было проверять параметр в базе данных (уже реализованный) и в соответствии с этим параметром (который является строкой) иметь возможность загружать определенный UserControl в мой View.

UserControl на самом деле является Canvas, поэтому он просто помещает правильный Canvas в представление в соответствии с записью базы данных.

Я не знаю, был ли я чист, поэтому, пожалуйста, спросите меня, не поняли ли вывопрос.

Спасибо всем помощникам!

1 Ответ

5 голосов
/ 24 октября 2011

Эта концепция загрузки элементов управления или аналогичных объектов из библиотеки DLL во время выполнения называется Отражением , и в некоторых сценариях это обычный способ выполнения действий. Попробуйте Google 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;
     }               
  }

Также см. этот вопрос для справки

...