سؤال

هل من الممكن تسجيل محول المنطقة داخل الوحدة النمطية؟

لديّ ContentControl في Shell.xaml معيّن على المنطقة "MainRegion" والتي يتم ملؤها حاليًا بوحدة نمطية تحتوي على عنصر تحكم AvalonDock.لدي حاليًا محول منطقة AvalonDock في تطبيق Shell ولكني أرغب في وضعه في الوحدة النمطية وتسجيل نفسه.أرغب في الحفاظ على مرونة هذا البرنامج حتى إذا قررنا استخدام شيء آخر غير AvalonDock ، فيمكنني بسهولة استخدام وحدة أخرى دون الحاجة إلى تعديل مجموعة Shell (إزالة محول منطقة avalondock).

أتخيل أن شيئًا كهذا ممكن.هل قام أحد بهذا من قبل؟

في برنامج bootstrapper الآن هو:

Genacodicetagpre

هذا ما أرغب في تنفيذه في الوحدة النمطية بدلاً من برنامج إقلاع شل.

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

المحلول

الإجابة هنا من codeplex http://compositewpf.codeplex.com/discussions/250892

السيناريو الذي تصفه هو ممكن. على الرغم من المنطقة المخصصة محولات مخصصة للتسجيل في RegionAdapterMappings في ملف بوتسترابر طريقة ConfigureRegionAdapterMappings ، من الممكن تسجيل العرف محول المنطقة من داخل وحدة.

يمكنك ، على سبيل المثال ، الحصول على ملف إشارة إلى RegionAdapterMappings في فئة الوحدة النمطية باستخدام حقن المُنشئ ، واستدعاء طريقة التسجيل هناك. هذا هو ممكن لأن هناك فئة باسم MefRegionAdapterMappings ، والتي تصدير RegionAdapterMappings كملف التصدير المشترك. لاحظ أنه يجب أن تكون على علم بقضايا التوقيت التي قد تنشأ بسبب هذا. يجب ان تكون حريصًا على تسجيل التعيين المخصص قبل محاولة إنشاء منطقة الذي يستخدم هذا المحول.

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