首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有MEF引导程序的Prism 4闪屏

带有MEF引导程序的Prism 4闪屏
EN

Stack Overflow用户
提问于 2011-06-20 22:43:25
回答 1查看 1.6K关注 0票数 7

我有一个使用MEF引导程序的prism 4应用程序。我已经从bootstrapper实现了一个闪屏,并希望在模块管理器加载应用程序/模块时为用户提供模块信息(当它们被加载时)。

我想我需要在模块管理器中订阅LoadModuleCompleted事件。我不能这样做,因为当我用MEF引导程序中的容器解析模块管理器时,PRISM框架调用OnImportsSatisfied来加载所有模块。(这太迟了,因为我想听这个)。

如何显示带有进度条的启动窗口,进度条显示模块信息/进度?

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2012-08-25 08:27:30

如果您控制导入到您的项目中的组合部件,您可以在每个部件上实现IPartImportsSatisfiedNotification,并让它们将自己的进度报告给一些导入的进度监视器类:

代码语言:javascript
复制
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));
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6413001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档