2011-06-20 14 views
7

मेरे पास एक एमईएफ बूटस्ट्रैपर का उपयोग कर प्रिज्म 4 एप्लिकेशन है। मैंने बूटस्ट्रैपर से स्प्लैश स्क्रीन लागू की है और मॉड्यूल प्रबंधक को मॉड्यूल जानकारी (जैसे वे लोड कर रहे हैं) प्रदान करना चाहते हैं, जबकि मॉड्यूल प्रबंधक ऐप/मॉड्यूल लोड कर रहा है।प्रिज्म 4 एमईएफ बूटस्ट्रैपर के साथ स्पलैश स्क्रीन

मुझे लगता है कि मुझे मॉड्यूल प्रबंधक में LoadModule पूर्ण घटना की सदस्यता लेने की आवश्यकता है। मैं ऐसा नहीं कर सकता क्योंकि जब मैं एमईएफ बूटस्ट्रैपर में कंटेनर के साथ मॉड्यूल मैनेजर को हल करता हूं तो PRISM ढांचे पर कॉल करता है OnImportsSisfisfied जो सभी मॉड्यूल लोड करता है। (यह बहुत देर हो चुकी है क्योंकि मैं इसके लिए सुनना चाहता हूं)।

मॉड्यूल जानकारी/प्रगति प्रदर्शित करने वाली प्रगति पट्टी के साथ मैं स्प्लैश विंडो कैसे प्रदर्शित कर सकता हूं?

बहुत धन्यवाद!

+0

आप देख सकते हैं [इस परियोजना ] (http://prismsplashscreen.codeplex.com)। यह एकता बूटस्ट्रैपर का उपयोग करता है, लेकिन आप इसे उपयोगी पा सकते हैं। –

उत्तर

0

आप बना भागों है कि आपके परियोजना में आयात किया जाता है को नियंत्रित हैं, तो आप प्रत्येक पर IPartImportsSatisfiedNotification को लागू करने और उन्हें कुछ आयातित प्रगति पर नजर रखने के वर्ग के लिए अपने स्वयं के प्रगति की रिपोर्ट कर सकते हैं:

public interface IProgressMonitor 
{ 
    void ReportComposed(Type type); 
} 

[Export(typeof(IProgressMonitor))] 
public class ProgressMonitor : IProgressMonitor 
{ 
    public ProgressMonitor() 
    { 
     var loadHeuristic = this.GetPreviousLoadProgress(); 
     if (loadHeuristic == null) 
     { 
      // Never been loaded before, so it's unclear how long it will take 
      // Set indeterminate progress bar. 
     } 
     else 
     { 
      // Use previous load times to estimate progress. 
      _loadHeuristic = loadHeuristic; 
      _progress = 0; 
     } 
    } 

    public void ReportComposed(Type type) 
    { 
     if (_loadHeuristic != null) 
     { 
      this.IncrementProgress(); 
     } 
    } 
} 

[Export] 
public class FooExport : IPartImportsSatisfiedNotification 
{ 
    [Import] 
    internal IProgressMonitor ProgressMonitor { get; set; } 

    public void OnImportsSatisfied() 
    { 
     this.ProgressMonitor.ReportComposed(typeof(FooExport)); 
    } 
} 
संबंधित मुद्दे