2011-06-15 8 views
14

मुझे पता है कि मैं के साथ एक क्षेत्र में सभी पंजीकृत दृश्य प्राप्त कर सकते हैं:PRISM का उपयोग कर किसी क्षेत्र में वर्तमान सक्रिय दृश्य कैसे प्राप्त करें?

var vs = mRegionManager.Regions[RegionNames.MainRegionStatic].Views.ToList(); 

और मैं देख सकता हूँ वहाँ निम्नलिखित कोड है:

mRegionManager.Regions[RegionNames.MainRegionStatic].ActiveViews 

जो सक्रिय दृश्य देखने की एक सूची दे रहा है, लेकिन मैं अपने क्षेत्र को ContentControl से जुड़ा हुआ हूं जिसमें हमेशा एक सक्रिय दृश्य होता है। क्या मुझे गलत समझा जाता है या क्या एक सक्रिय दृश्य प्राप्त करने का कोई तरीका है?

उत्तर

12

var singleView = regionManager.Regions["MyRegion"].ActiveViews.FirstOrDefault();

+0

महान काम किया, लेकिन यह कैसे है कि हमारे पास इसका संग्रह है? –

+2

क्योंकि [सिंगलएक्टिव रेगियन] (http://msdn.microsoft.com/en-us/library/microsoft.practices.composite.presentation.regions.singleactiveregion.aspx) विरासत क्षेत्र –

+0

आईओसी का उपयोग कर मौजूदा वीएम प्राप्त करने का कोई तरीका है कंटेनर (मेरे मामले में DryIoc)? मैंने 'ShellViewModel 'से' यह == _Container.Resolve 'को आजमाया और इसका मूल्यांकन' झूठा' किया। – Shimmy

5
var singleView = regionManager.Regions["MyRegion"].ActiveViews.FirstOrDefault(); 

इस रूप में यह सिर्फ जो कुछ का मानना ​​है कि पहले ही सक्रिय हो गया लाएगा, सही नहीं है। वर्तमान में सक्रिय/दृश्यमान दृश्य नहीं।

हालांकि प्रत्यक्ष समाधान नहीं मिल रहा है, इसमें व्यू या व्यूमोडेल पर कस्टम कार्यान्वयन शामिल नहीं है।

+0

दिलचस्प !! , लेकिन उस समय मुझे वांछित था। क्या आप अधिक जानकारी दे सकते हैं? –

संबंधित मुद्दे