我在Silverlight 4 / MEF中遇到了一些问题。我有一个基本框架设置,其核心是Silverlight导航应用程序。

Image link进行说明

主应用程序(Desu)包含一些页面和控件,可以很好地导出和导入。我从Desu.Controls(如我通过IImageViewer接口识别的imageviewer)动态加载控件,并从Desu.Pages动态加载某些页面。

我遇到的第一个问题是动态加载页面并能够导航到这些页面(例如,从xap加载Desu.Pages时,使用dummyhttp://blagh/desutestpage.aspx#/Activation)。我通过使用自定义MetaAttribute和自定义contentloader解决了这一问题。

现在对于问题部分:
我想从Desu的HomePage中的Desu.Controls加载ImageViewerControl。我还没有将Desu.Controls加载到包中。当我尝试加载控件时,它给了我CompositionException,因为它不能满足ImageViewControl的导入要求。我尝试设置AllowRecomposition = true,但这没有帮助。

这样就可以在不满足所有导入的情况下加载控件,如果可以,那么该怎么做?

最佳答案

因此,您希望最初不满足导入要求,但又希望以后添加它吗?

您通过设置AllowRecomposition = true处于正确的轨道,但还需要设置AllowDefault = true。然后,如果ImageViewerControl不可用,则该属性将为null,并在该属性可用时进行设置。

关于c# - 如何显示一个满足所有导入要求的UserControl,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2858361/

10-13 06:45