ما هي أفضل طريقة لتحميل المشاهدات بشكل حيوي من عنصر تحكم التنقل في المنشور
-
16-09-2019 - |
سؤال
لقد قمت بتنفيذ التنقل من خلال طلبي باستخدام عنصر تحكم قائمة ينشر حدثا باستخدام EventAggggrator عند النقر على عنصر القائمة. شيء مثل كما هو موضح أدناه،
this.eventAggregator.GetEvent<ViewRequestedEvent>()
.Publish(new BusinessObject.Model.MenuModel
{
Module = "Dashboard",
PresenterClass = "DashboardViewModel"
});
معظم الوحدات النمطية في طلبي هي مشترك في هذا الحدث. يستخدمون مرشح للاشتراك فقط تلك الأحداث ذات الصلة بالوحدة
this.eventAggregator.GetEvent<ViewRequestedEvent>()
.Subscribe(LoadViewRequest, ThreadOption.UIThread, true, i => i.Module == "Dashboard");
يتم التعامل مع طلب العرض مثل هذا:
private void LoadRequestedView(MenuModel menuItem)
{
try
{
IDashboardViewModel viewModel = this.container.Resolve(Type.GetType(menuItem.PresenterClass)) as IDashboardViewModel;
this.regionManager.Regions["ViewRegion"].Add(viewModel.View);
this.regionManager.Regions["ViewRegion"].Activate(viewModel.View);
this.eventAggregator.GetEvent<ViewNotificationEvent>().Publish(menuItem.Description);
}
catch (ResolutionFailedException) { }
}
كيف تقيم هذا التنفيذ؟ إذا كنت تعتقد أنه تمتص، فاساعدني على تحسينه أو اقتراح بديل أفضل.
المحلول
أعتقد أن لديك نقص معين لفصل المخاوف مع هذا النموذج. أحاول عموما الحفاظ على العرض التقديمي إلى قذيفة. انظر هذا السؤال لكيفية تنفيذ هذا. يبسط الأشياء وملخصات فكرة إيطاليا بعيدا عن الوحدات:
لا تنتمي إلى StackOverflow