Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Thomas Lebrun

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

[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

- [Refactoring] ReSharper pour Visual Studio 2010 (Preview) par Thomas Jaskula le il y a 14 heures et 10 minutes

- [Refactoring] Analyser vos exceptions avec ReSharper Exceptional par Thomas Jaskula le il y a 15 heures et 24 minutes

- SharePoint 2007 : patterns & practices SharePoint Guidance par Philippe Sentenac [MVP SharePoint] le 07-03-2009, 09:56

- [Visual Studio 2010] Les tests cases c’est bien, mais je vais devoir tout réécrire ? par Etienne Margraff le 07-03-2009, 09:00

- MVP[Gribouillon].AddYear par The Grib's Lair [Sébastien PICAMELOT - MVP SharePoint] le 07-03-2009, 08:45

- Clinique INSIA - Projet de fin d’Etudes (Silverlight 3 MVVM et OutOfBrowser, WCF, TFS) - Part 1 par David REI le 07-02-2009, 23:38

- C’est la crise ? Bah pourquoi cramer du budget pub alors ? par Nix's Blog le 07-02-2009, 15:31

- Soyons MVP ! par TheSaib .NET blog le 07-02-2009, 12:15

- SharePoint : Gestion des Erreurs 6398, 7076 et 6482 par Blog Technique de Romelard Fabrice le 07-02-2009, 11:53

- EF avec WPF par Matthieu MEZIL le 07-02-2009, 10:18