Ich stehe vermutlich vor genau dem gleichen Problem, dass ich XAML-Dateien, welche Events enthalten nicht dynamisch nachladen kann.
Über das folgende Konstrukt lässt sich die XAML-Datei problemlos zum vorhandenen Window hinzufügen:
using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read))
{
Grid gridContent = (Grid)XamlReader.Load(fs);
this.Content = gridContent;
}
Enthält die XAML-Datei aber ein Element, welches ein Event anspricht (z.B. einen Button), schlägt die ganze Sache zur Laufzeit mit folgender Fehlermeldung fehl: Die Ereignisse angebende XAML-Datei muss kompiliert werden. Zeile 4 Position 30.
An dieser Stelle ist dann folgender Code zu finden:
<Button Height="28" Click="button1_clicked">Toller Knopf</Button>
^
Position 30 (eingerückt)
Ziel meiner Bestrebung ist es, die XAML-Datei von einer anderen Applikation generieren zu lassen, um sie dann in meiner WPF-Anwendung anzuzeigen. Die Events in der Code-Behind-Datei sind dabei so dynamisch, dass sie allgemeingültig aufgerufen werden können.
Derzeit habe ich die Code-Behind-Assembly in mein Projekt eingebunden.
Ich vermute, dass das Problem das gleiche ist, wie das oben beschriebene. Allerdings habe ich die Beschreibung mit dem dynamischen Laden der DLLs nicht verstanden, bzw. in wie weit es das Problem lösen soll.
Selbst wenn ich die Code-Behind-Assembly aus meinem Projekt entferne (und auch nicht dynamisch nachlade), taucht der Fehler auf, dass die XAML-Datei kompiliert werden muss.
Gibt es dazu bereits eine Lösung oder funktioniert das von mir angedachte Vorgehen nur mit dem erwähnten Compiler as a Service?
Ich bin für jeden Hinweis dankbar.