Сейчас мой XAP-файл стал большим, и мне нужно решение, чтобы разделить его на несколько небольших приложений. MEF или PRISM могут решить мою проблему
Я читаю и смотрю онлайн-учебник для них, но до сих пор не понимаю, как я могу применить их к моему текущему проекту.
Позвольте мне объяснить мой проект:
-В mainpage.xaml, он имеет только один контроль меню. Однако это управление меню будет построено ДИНАМИЧЕСКИ на основе данных, полученных посредством вызова службы. Вы можете увидеть в моем меню изображение
http://www.flickr.com/photos/31396433@N08/sets/72157627077751863/
-Каждый раз, когда пользователь щелкает по пункту меню, всплывающее окно этого пункта меню позволяет пользователю выполнять свою бизнес-работу. Вы можете видеть на моей картинке GeneralLedger_JournalPosting. Элемент menuPosting menu принадлежит разделу GeneralLedger.
http://www.flickr.com/photos/31396433@N08/sets/72157627077751863/
Это код, показывающий, как я показываю всплывающее окно menuItem через событие щелчка menuItem в menuControl
private void MenuItemClick(object sender, RadRoutedEventArgs args)
{
RadMenuItem item = args.OriginalSource as RadMenuItem;
SFMenu sFMenu = item.Header as SFMenu;
OpenMenuItemScreenBy(sFMenu.Name);
}
private void OpenMenuItemScreenBy(string menuName)
{
if (menuName == "User Management")
{
var userManagement = new UserManagement();
//userManagement.WindowStartupLocation = WindowStartupLocation.Manual;
userManagement.Top = 50;
userManagement.Show();
}
//Testing area
else if (menuName == "Testing")
{
Testing t = new Testing();
t.Top = 50;
t.Show();
}
//
......
.......
Это все о моем проекте. По сути, мне просто нужно создать разные экраны для каждого элемента меню. Потому что количество моих пунктов меню продолжает увеличиваться, поэтому необходимо создать более соответствующий экран окна. И это делает мой XAP больше.
Решение:
Я думаю о способе разделения каждого из моих оконных элементов Window MenuItem (например, GeneralLedger_JournalPosting) на отдельный XAP. И мой основной файл XAP будет содержать только menuControl.
Однако мне нужно знать, как загрузить соответствующий XAP-файл menuItem на лету, если пользователь щелкнет по элементу menuItem (например, GeneralLedger / JournalPosting). И откройте экран JournalPosting
Но если пользователь снова щелкнет по этому пункту меню, загрузка не требуется. Просто посмотрите на кеш
(я смотрю учебное пособие по MEF и знаю, что для этой функции мне нужно использовать DeloymentCatalog. Однако я не вижу ни одного примера, чтобы позволить нам вручную получить доступ через код usercontrol в динамическом файле XAP)
Во-вторых,
Потому что каждый экран моего меню menuItem будет использовать одну и ту же стороннюю DLL (например: DLL для GridView, Navigation, ...). Так что вы также можете сказать мне, как разрешить мне загружать только эти ОДИН раз. Потому что, если я помещу эти dll в каждый из XAP-окон моего меню menuItem, то я думаю, что они будут перезагружаться каждый раз, когда соответствующий XAP запрашивает загрузку
спасибо за вашу помощь.