פרק זה ממשיך את הפרק הקודם בתיאור התקשורת בין דף HTML ורכיב Silverlight שנמצא בתוכו.
בפרק זה נלמד כיצד נוכל לגשת מ HTML / JavaScript לאובייקטים שהגדרנו ב Silverlight.
גישה מ HTML ל Silverlight
כדי לאפשר גישה מדף HTML למחלקה ב Silverlight יש להוסיף לה את Attribute בשם ScriptableType וכן להוסיף לכל פונקציה שנרצה לגשת אליה את Attribute בשם ScriptableMember.
לדוגמא, הקוד הבא מציג את המחלקה Person שנחשפה לגישה מתוך JavaScript. ניתן לגשת מ JavaScript לתכונות Name ו Age בלבד ולפונקציה Foo. התכונה IsOK אינה זמינה מאחר ולא חשפנו אותה במפורש:
[ScriptableType]
public class Person
{
[ScriptableMember]
public string Name { get; set; }
[ScriptableMember]
public int Age { get; set; }
public bool IsOk { get; set; }
[ScriptableMember]
public string Foo()
{
return Name;
}
}
כדי להשלים את החשיפה חובה גם לרשום את המופעים של המחלקה שאנו רוצים לחשוף ע"י שימוש בפונקציה RegisterScriptableObject. בעת הרישום יש לספק שם לאובייקט שדרכו יהיה ניתן לפנות לאובייקט מתוך JavaScript.
בדוגמת הקוד הבאה אנו רושמים מופע של האובייקט Person:
HtmlPage.RegisterScriptableObject("arikPerson",
new Person() { Name = "Arik", Age = 28, IsOk = true });
כעת נוכל לגשת מקוד JavaScript ישירות לאובייקט שרשמנו באופן הבא:
function Func() {
var slObject = document.getElementById("xaml1");
if (slObject) {
alert(slObject.content.arikPerson.Foo());
}
}
נעיר כי האלמנט xaml1 הוא שם האלמנט שנתנו לאובייקט ה Silverlight בתוך עמוד ה HTML.
תוצאת הלחיצה על הכפתור HTML:


