Murakkab versiya - Ko'rish mintaqadagi xatolikda allaqachon mavjud

WPF/Prism 4/AvalonDoc ilovasida ishlayman.

Mening fikrimdan biri juda murakkab va ViewModel katta va chidamsiz bo'lib qoladi. Shuning uchun uni o'z ViewModelslar bilan kichikroq ko'rinishga bo'lishga qaror qildim.

RegionManager.RegisterViewWithRegion usuli yordamida "master" ViewModel konstruktoridan foydalanib, ushbu mintaqaga pastki ko'rinishni ko'rish va yuklash hududini joylashtirdim.

Bu ko'rinishning bir nusxasi yuklanganida kutilganidek ishlaydi. Ammo men ushbu ekranning ikkinchi nusxasini ochsam (u DocumentContent sifatida AvalonDock-ning DocumentPane-ga o'rnatilgan) men "View all-in-region" xatosini olaman.

Mumkin bo'lsa, mintaqani o'ziga xos nom berishdan qochmoqchiman. "Magistr" ko'rinishining muayyan nusxasiga pastki ko'rinish qo'shayotganimni ko'rsatishning usullari bormi? Buni qanday qilish haqida maslahat berasizmi?

2

2 javoblar

MEF foydalanayotgan bo'lsangiz va sizning fikringiz Singleton, ya'ni.

[PartCreationPolicy(CreationPolicy.Shared)]

va sizning INavigationAware funksiyasi o'chirilgan bo'ladi

public override bool IsNavigationTarget(NavigationContext navigationContext)

{To'g'ri;}

Siz bu xatoni qabul qilasiz.

Change [PartCreationPolicy(CreationPolicy.Shared)] to [PartCreationPolicy(CreationPolicy.NonShared)]

va siz bajarilgansiz.

1
qo'shib qo'ydi

Men bir xil nomdagi bir necha hududga ega bo'lmasligingizdan qo'rqaman. Ko'rish modelining murakkablashishi bilan qarashlarni ajratmaslikni afzal ko'raman. Ko'rish modelini bir necha ixtisoslashtirilgan ko'rish modeliga bo'lishingiz mumkin.

Misol. Sizda foydalanuvchi boshqaruvi mavjud. Bir ko'rinish modeli barcha foydalanuvchilarning ro'yxatidir. Ushbu ro'yxat foydalanuvchi versiya modellarini o'z ichiga oladi. Va har bir foydalanuvchi namunasi namunasi foydalanuvchi huquqlari nuqtai nazarining namunasini o'z ichiga oladi, u o'zi yana bir foydalanuvchi huquqini ifodalovchi modellar ro'yxati. Shuning uchun maxsus foydalanuvchi huquqini taqdim etishning mantiqiysi "ustoz" foydalanuvchi ro'yxatini ko'rish modeliga emas, balki muxbirlarning modeliga kiradi. Shunday qilib, tashvishlaringizni turli xil modellarga ajratishingiz mumkin.

Ushbu modellarga ulanish faqatgina bitta ko'rinishga ega modelga ega. Faqat yo'l biroz ko'proq vaqtga cho'ziladi. Ma'lumotlar konteksti yuqoridagi misoldan foydalanuvchi ro'yxati ko'rinishi modeli bo'lsa, siz foydalanuvchilar huquqlarini ro'yxatini olish uchun CurrentUserVM.UserRightsVM kabi majburiy yo'lga ega bo'lishingiz mumkin.

0
qo'shib qo'ydi