Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Thomas Lebrun

Tout sur WPF, LINQ, C# et .NET en général !

Actualités

[WPF] Comment charger dynamiquement un fichier XAML qui définit des eventhandler ?

Le chargement dynamique de fichiers XAML, dans une application WPF, est souvent une tâche assez délicate.

En effet, lorsque le fichier ne contient que des éléments ne proposant pas d'intéraction avec l'utilisateur, tout ce passe bien, il est possible d'utiliser la méthode XamlReader.Load:

var s = File.Open("DemoWindow.xaml", FileMode.Open);

XamlReader.Load(s);

Seulement, dès lors que l'attribut x:Class est présent dans le code XAML, l'erreur suivante est déclenchée:

'Class' attribute does not exist in XML namespace 'http://schemas.microsoft.com/winfx/2006/xaml' namespace. Line '1' Position '9'

Pour éviter cette erreur, et ainsi charger le fichier XAML définissant des EventHandler, il suffit d'utiliser la méthode générée par le compilateur lorsqu'il transforme les fichiers XAML en fichier .g.cs (ou .g.vb): la méthode Application.LoadComponent:

Window window = Application.LoadComponent(new Uri("/TestDynamicLoading;component/Window2.xaml", UriKind.Relative)) as Window;

if (window != null)

{

    window.ShowDialog();

}

Notez bien la syntaxe "particulière":

/NomDeLAssembly;component/NomDuFichierXAMLACharger

De cette manière, le chargement est un succès, même si des gestionnaires d'évènements sont définits dans le fichier !

 

A+

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: jeudi 4 septembre 2008 10:56 par Thomas LEBRUN
Classé sous : ,

Commentaires

DjoDjo a dit :

Encore un post de grande qualité, merci...

# septembre 4, 2008 11:08
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- TechDays Paris 2012 : Session pleinière jour 3 par Blog Technique de Romelard Fabrice le il y a 21 heures et 12 minutes

- Mishra Reader : un lecteur RSS très Zune Style en Open Source ! par Cyril Sansus le il y a 23 heures et 46 minutes

- [framework 4] Les Tasks et le Thread UI par Fathi Bellahcene le 02-09-2012, 00:33

- Workflow Foundation 3 a un pied dans la tombe par Blog de Jérémy Jeanson le 02-08-2012, 22:15

- TechDays Paris 2012 : Nouvelles tendances du poste de travail - Bring Your own PC par Blog Technique de Romelard Fabrice le 02-08-2012, 19:42

- TechDays Paris 2012 : System Center Service Manager 2012 Vue d’ensemble par Blog Technique de Romelard Fabrice le 02-08-2012, 17:32

- TechDays Paris 2012 : Pleinière second jour par Blog Technique de Romelard Fabrice le 02-08-2012, 16:23

- TechDays Paris 2012 : Retour d'expérience sur la mise en place d'un Cloud Privé par Blog Technique de Romelard Fabrice le 02-08-2012, 16:04

- TechDays Paris 2012 : Comment SharePoint a sauvé mes TechDays par Blog Technique de Romelard Fabrice le 02-07-2012, 23:59

- Perspective 3.0 pour Silverlight 5.0 par Perspective le 02-07-2012, 22:39