2010-02-17 12 views
7

में इतिहास संग्रहीत करने से रोकें ऐसा लगता है कि यह एक आसान समाधान होगा, लेकिन मैं इसे समझने की कोशिश कर रहा हूं। शायद मैं अपना आवेदन गलत तरीके से डिजाइन कर रहा हूं (जो मामला हो सकता है), इसलिए यदि आपके पास बेहतर समाधान है तो कृपया मेरी मदद करें।डब्ल्यूपीएफ फ्रेम को स्टैक

मैं एक एंटरप्राइज़ स्तर WPF एप्लिकेशन डिज़ाइन कर रहा हूं जो टूलबार के बजाय Ribbon के साथ Outlook की तरह दिखता है। मेरे पास बहुत सारे मॉड्यूल हैं जो फ्रेम में लोड होते हैं जब उपयोगकर्ता RibbonButton पर क्लिक करता है। ध्यान रखें कि उसके रिबन सभी मॉड्यूल में साझा किया जाता है।

तो मेरे पास एक रिबन और एक फ्रेम के साथ एक खोल है। जब उपयोगकर्ता रिबन बटन पर क्लिक करता है, तो यह फ्रेम में उचित मॉड्यूल (usercontrol) लोड करता है। सब अच्छा है। हालांकि, अगर मैं किसी अन्य मॉड्यूल पर जाता हूं (किसी अन्य रिबन बटन पर क्लिक करके), और उसके बाद मूल RibbonButton पर क्लिक करें, तो अब मेरे पास एक ही मॉड्यूल के दो उदाहरण खुले हैं ... लेकिन केवल फ्रेम में दिखाया गया है ... दूसरा मॉड्यूल फ्रेम के ढेर में है।

तो मेरा सवाल यह है कि, जब मैं एक अलग मॉड्यूल पर नेविगेट करता हूं तो उपयोगकर्ता नियंत्रण को बंद करने के लिए फ्रेम को कैसे कहूं? मैंने JournalEntry.KeepAlive="False" सेट करने का प्रयास किया है, लेकिन यह अभी भी काम नहीं कर रहा है। कोई विचार? पोस्ट करने के लिए वास्तव में बहुत अधिक कोड नहीं है, लेकिन अगर ऐसा आपकी मदद करेगा तो मैं ऐसा कर सकता हूं।

उत्तर

9

यदि आप पिछली प्रविष्टि में "वापस" जाने का इरादा नहीं रखते हैं, तो आप प्रत्येक बार नेविगेट करते समय इतिहास को साफ़ करने के लिए NavigationService.RemoveBackEntry() का उपयोग कर सकते हैं। ऐसा करने का सबसे आसान तरीका फ्रेम का Navigated event:

frame.Navigated += frame_Navigated; 

void frame_Navigated(object sender, NavigationEventArgs e) 
{ 
    frame.NavigationService.RemoveBackEntry(); 
} 
+0

क्या होगा यदि मुझे केवल एक ही नेविगेशन के लिए ऐसा करने की आवश्यकता है? –

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