ما هي أفضل طريقة لتحميل المشاهدات بشكل حيوي من عنصر تحكم التنقل في المنشور

StackOverflow https://stackoverflow.com/questions/1678423

  •  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) { }
}

كيف تقيم هذا التنفيذ؟ إذا كنت تعتقد أنه تمتص، فاساعدني على تحسينه أو اقتراح بديل أفضل.

هل كانت مفيدة؟

المحلول

أعتقد أن لديك نقص معين لفصل المخاوف مع هذا النموذج. أحاول عموما الحفاظ على العرض التقديمي إلى قذيفة. انظر هذا السؤال لكيفية تنفيذ هذا. يبسط الأشياء وملخصات فكرة إيطاليا بعيدا عن الوحدات:

دمج وحدات مع التطبيق في Prism AKA Compositewpf

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top