2012-12-04 11 views
6

मुझे क्षेत्रनाम के आधार पर क्षेत्र को लोड करने की आवश्यकता है।WPF + PRISM रनटाइम पर क्षेत्र को कैसे बदलें

<ContentControl cal:RegionManager.RegionName="{Binding CustomRegionName}" 
        Grid.Column="2"/> 

सभी क्षेत्रों को ठीक से पंजीकृत किया गया है। यदि मैं CustomRegionName का मान बदलता हूं तो क्षेत्र कभी भी नहीं बदलता है। मैं यह कैसे कर सकता हूँ?

उत्तर

5

यह व्यवहार इसलिए है क्योंकि क्षेत्र पहले से ही दृश्य पेड़ में लोड हो चुका है। क्या आप अपना ऐप थोड़ा बदल सकते हैं ताकि आप क्षेत्र का नाम बनाए रख सकें लेकिन क्षेत्र में कई दृश्य लोड कर सकें। इस तरह से आप जहां कहीं किसी विशेष दृश्य में दिखाना चाहते हैं जो दिखाई देने वाले क्षेत्र में सक्रिय है और गतिशील रूप यानी

IRegion region = regionManager.Regions["RegionName"]; 
object view = container.Resolve<SomeView>(); 
object view2 = container.Resolve<SomeView2>(); 

region.Add(view); 
region.Add(view2); 

फिर IRegionViewManager और IRegion इंटरफेस का उपयोग करके सामग्री नियंत्रण के प्रदर्शन में कोई परिवर्तन करने में सक्षम होगा अन्य IRegionManager इंजेक्ट करें और फिर

region.Activate(whichever view); 
+0

धन्यवाद .. मुझे अच्छा लगता है। मैं इसे लागू करने जा रहा हूं। –

+0

यह बहुत अच्छा काम करता है। दोस्त बहुत - बहुत धन्यवाद –

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