[Silverlight] Astuce du jour #06 – Utiliser les paramètres d'initialisation
Il existe 2 façons d'initialiser son application avec des paramètres :
- des paramètres dans l'URL du type TestPage.html?param1=val1¶m2=val2
- des paramètres dans la page contenant votre contrôle
Pour récupérer les paramètre dans l'URL il suffit simplement de récupérer la QueryString de cette façon :
string param1 = HtmlPage.Document.QueryString["param1"];
string param2 = HtmlPage.Document.QueryString["param2"];
Pour récupérer les paramètres dans une page, il faut tout d'abord les ajouter :
Pour une page aspx utilisant un contrôle <asp:Silverlight>, il faut utiliser la propriété InitParameters.
<asp:Silverlight ID="Xaml1" runat="server" InitParameters="param1=val1,param2=val2" ... />
Pour une page html utilisant une balise <object>, il faut utiliser le paramètre <param> avec comme nom initParams.
<object data="data:application/x-silverlight," type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="ClientBin/TestSilverlight.xap"/>
<param name="onerror" value="onSilverlightError" />
<param name="background" value="white" />
<param name="initParams" value="param1=val1,param2=val2" />
...
</object>
On veille bien à séparer nos paramètres par des virgules.
Pour récupérer ces paramètres, il faut se rendre dans la méthode Application_Startup du fichier App.xaml.cs.
private void Application_Startup(object sender, StartupEventArgs e)
{
if (e.InitParams.Count == 0) this.RootVisual = new Page();
else this.RootVisual = new Page(e.InitParams);
}
On récupère nos paramètres via la propritété InitParams.
Dans mon exemple, il suffit donc de créer un nouveau constructeur recevant en paramètre un IDictionnary<string,string>.
C’est tout pour cette astuce Silverlight.
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 :