javascript - 我可以在 Silverlight 中的可编写脚本的成员属性上设置 Javascript 实例属性吗?

标签 javascript silverlight htmlbridge

我的 Silverlight 控件中有以下 (2) 个“ScriptableMember”类型:

<ScriptableMember()>
Public Property MType As MyCustomType

<ScriptableMember()>
Public Property Message As String

这里的目的显然是允许通过 JavaScript 中的 HTML 桥进行暴露。调用“Message”属性很简单,并且工作原理如下:

var SLControl = document.getElementById("SilverlightControl");
SLControl.Content.MyRegisteredControl.Message = 'Hello';

但是,我在通过深入了解 JS 中的属性来设置实例属性的值时遇到问题。我认为代码应该如下:

SLControl.Content.MyRegisteredControl.MType.Name = 'John';

请注意我如何添加“MType”,然后访问其名为“Name”的公共(public)属性之一。 MyCustomType 类具有所需的所有适当的“ScriptableMember”属性。

但是,当运行上面的行时,我收到以下错误:

“Microsoft JScript 运行时错误:对象不支持此属性或方法”

它在“消息”的分配上工作得很好。 JS 中是否可以深入查看实例属性并分配其变量?如果是这样,我的 JS 是否不正确,或者我需要做什么来解决这个问题。谢谢!

最佳答案

好吧,我在这个问题上没有得到任何帮助,但我想通了,答案是"is"。

第一,我的 Silverlight 控件上有一个实例属性,如下所示:

<ScriptableMember()>
Private _MyClass1 As New MyCustomClass
Public Property MyClass1() As MyCustomClass
 Get
   Return _MyClass1
 End Get
 Set(ByVal value As MyCustomClass)
   _MyClass1= value
 End Set
End Property

根据 HTML 桥的要求,注册我的控件的类实例的实例,以便我可以从 JavaScript 获取访问权限:

HtmlPage.RegisterScriptableObject("MySLControl", Me)

现在我认为我需要为实例属性注册上面的另一个成员,但我不需要这样做。您可以通过作为可编写脚本的成员公开的主类实例深入了解它,如下所示:

//Get instance of the Silverlight File Upload Control
var SLControl = document.getElementById("SilverlightControl");
if (SLControl != null)
  //Drill down through the instance property exposed on the Silverlight control
  SLControl.Content.MySLControl.MyClass1.Name = "John Smith";

让我失望的是我认为我需要为实例属性注册一个可编写脚本类型的实例,但我不需要这样做。我可以深入查看并访问该属性。

以下帖子对此进行了更多扩展:
<强> Accessing Instance Properties in Silverlight from JavaScript

关于javascript - 我可以在 Silverlight 中的可编写脚本的成员属性上设置 Javascript 实例属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9263350/

相关文章:

触发 SilverLight 方法的 Javascript 按钮?

javascript - 如何制作已从显示 :none to display:block available in the DOM? 更改的元素

JavaScript:用于检索属性值的括号表示法

javascript - Javascript 中的广度优先搜索

silverlight - Silverlight 中的 VisualState 继承

WPF 图像与 XAML

Silverlight HttpWebRequest.Create 卡在异步 block 内

javascript - LocationCollection 未标记为 ScriptableType,但可以在脚本中实例化(怎么会?)

javascript - Rxjs:将两个流与一个依赖于另一个的流合并