juin
2008
Prenons un exemple, j’ai un objet composé de 2 strings dans mon application. Ces deux strings représentent des entiers. Je veux les passer à une fonction javascript qui me renverra un objet composé de 2 entiers contenant la mise au carré des valeurs contenues dans le premier objet.
Pour ce faire, on va créer nos deux objets en C# coté Silverlight en utilisant l’attribut ScriptableMember.
{
[ScriptableMember]
public string val1 { get; set; }
[ScriptableMember]
public string val2 { get; set; }
}
public class Retour
{
[ScriptableMember]
public int val1 { get; set; }
[ScriptableMember]
public int val2 { get; set; }
public override string ToString()
{
return string.Format("{0},{1}", val1, val2);
}
}
Il faudra ensuite enregistrer le type de retour coté javascript, grace à HtmlPage.RegisterCreateableType :
{
InitializeComponent();
Loaded += Page_Loaded;
}
void Page_Loaded(object sender, RoutedEventArgs e)
{
HtmlPage.RegisterCreateableType("TypeRetour", typeof(Retour));
}
Ainsi, coté javascript, on pourra exploiter ce type dans la fonction :
function modify(val)
{
var xaml = $get("Xaml1");
var retour = xaml.content.services.createObject("TypeRetour");
retour.val1 = parseInt(val.val1) * parseInt(val.val1);
retour.val2 = parseInt(val.val2) * parseInt(val.val2);
return retour;
}
</script>
Dans le javascript, on va créer l’objet qui va nous servir pour retourner les valeurs à Silverlight et le renseigner en conséquence.
Enfin, coté Silverlight, on appelle la fonction javascript grace à HtmlPage.Window.Invoke en lui passant l’objet de paramètres.
{
var scriptObject = HtmlPage.Window.Invoke("modify", new Parametres { val1 = "5", val2 = "7" }) as ScriptObject;
var retour = scriptObject.ManagedObject as Retour;
HtmlPage.Window.Alert(retour.ToString());
}
On récupère un objet de type scriptObject dont on pourra caster le contenu de ManagedObject en notre type de retour.
Commentaires récents
- [Tests] Arrange Act Assert, une traduction ? dans
- [UnitTest][C#] Tester une méthode privée dans
- Récupérer une valeur d’un contrôle depuis une autre Form / inclusions croisées et déclaration anticipée dans
- Tutoriel : Utiliser la ListBox et l’Isolated Storage dans vos applications Windows Phone 7 avec Silverlight dans
- Tutoriel : Utiliser la ListBox et l’Isolated Storage dans vos applications Windows Phone 7 avec Silverlight dans
Archives
- janvier 2013
- avril 2012
- janvier 2012
- juin 2011
- janvier 2011
- décembre 2010
- novembre 2010
- septembre 2010
- juin 2010
- mars 2010
- février 2010
- janvier 2010
- décembre 2009
- novembre 2009
- octobre 2009
- septembre 2009
- août 2009
- juillet 2009
- mai 2009
- avril 2009
- mars 2009
- janvier 2009
- décembre 2008
- novembre 2008
- octobre 2008
- septembre 2008
- août 2008
- juillet 2008
- juin 2008
- mai 2008
- avril 2008
- mars 2008
- février 2008
- janvier 2008
- décembre 2007
- novembre 2007
- octobre 2007
- septembre 2007
- août 2007
- juillet 2007
- juin 2007
- mai 2007