Silverlight每日一贴:你知道吗,传递信息到Silverlight控件的另一种方法是通过第七个(context)参数
AndyWan(放飞梦想) [翻译]
2007-12-21 12:31:13
来源:Jesse Liberty's Blog
浏览次数: 154
应用于:
  • Microsoft Silverlight
  • Microsoft Silverlight 1.0
Tags:
上期的每日一贴中,我们看到createSilverlight/createSilverlightEx函数的第六个参数允许你传递一个字符串给initParams参数。

你还可以传递一个对象(object)给第七个参数,称为user context。它可以是你需要的任何对象。然而,不是作为Silverlight控件的一个属性来获得,你通过作为load事件处理方法的第二个参数来获得userContext。
handleLoad: function(plugIn, userContext, rootElement)

作为一个简单的例子,你可以在default.html.JS中创建一个数组,并传递它作为你的userContext对象:
var authorArray =
   [ "Douglas Adams", "Neil Gaiman", "Neal Stephenson" ];
context: authorArray

既然它只在handleLoad事件里,你将需要保存它到一个成员变量(member variable)中,这样在每个成员方法(member method)里面可以被使用:
handleLoad: function(plugIn, userContext, rootElement)
{
    this.plugIn = plugIn;
    this.userContext = userContext;

使用关键字this来创建一个可以在任何成员方法中访问的成员变量。userContext看起来像一个变量,但是你传进来的是一个数组,所以你可以把它作为一个数组来使用。
handleMouseUp: function(sender, eventArgs)
{
    alert("this.userContext[0] = " + this.userContext[0]);
    alert("this.userContext[1] = " + this.userContext[1]);
    alert("this.userContext[2] = " + this.userContext[2]);
},
TipOfTheDay61.gif