2009-08-14 9 views
0

J'ai essayé de charger dynamiquement l'assemblage à partir d'un fichier XAP comme ci-dessous:Que demander de créer dynamiquement une instance de contrôle utilisateur?

AssemblyPart asmPart = new AssemblyPart(); 
StreamResourceInfo streamInfo = Application.GetResourceStream(new StreamResourceInfo(xapFileStream, "application/binary"), new Uri(source, UriKind.Relative)); 
Assembly asm = asmPart.Load(streamInfo.Stream); 
FrameworkElement element = asm.CreateInstance(className) as FrameworkElement; 

Alors j'ai essayé de charger le MainPage de contrôle de l'utilisateur. Si MainPage est simple:

Si le

namespace TestApp 
{ 
    public partial class MainPage : UserControl 
    { 
     public MainPage() 
     { 
      InitializeComponent(); 
     } 
    } 
} 

Il est très bien. Mais si le MainPage comme:

namespace TestApp 
{ 
    public partial class MainPage : UserControl 
    { 
     private readonly Dictionary<IWorkbenchWidget, TabControlElement> tabs; 


     public MainPage() 
     { 
      InitializeComponent(); 
     base.Loaded += new RoutedEventHandler(myHandler); 
     } 
    } 
} 

Il a échoué.

Vous voulez donc savoir si utiliser Assembly.CreateInstance pour créer une instance d'une classe, une requête spéciale sur la classe?

Répondre

0

Le problème semble être avec: (sauf si vous avez omis pour la brièveté)

base.Loaded += new RoutedEventHandler(myHandler); 

Vous ne disposez pas d'un gestionnaire d'événements nommé « myHandler » défini dans MainPage.

Questions connexes