septembre
2008
Il existe 2 façons d’initialiser ton 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-b2″ 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 callback Application_Startup, dans le 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>.
Voici donc pour les paramètres d’initialisation en Silverlight 2.