2012-04-11 2 views
0

Я использую концепции, преподаваемые в this tutorial, для связи с Javascript в моем приложении Silverlight и из него. Я хочу, чтобы код JavaScript проверял, заполнены ли все поля формы на стороне HTML, и если да, запустите метод в MainPage.Использование ScriptableMember для проверки MainPage

Проблема заключается в том, что эта технология возвращает ответ на объект ScriptableClass вместо MainPage. Кто-нибудь знает, как ScriptableObject может вызвать метод в MainClass. Возможно, используя событие в MainClass, инициированное в объекте ScriptableClass?

public class ScriptableClass 
{ 
    [ScriptableMember] 
    public void gotdetails(string message) 
    { 
     if (message == "1") 
     { 
      // call next method in MainPage 
     } 
     if (message == "0") 
     { 
      // tell user to complete fields 
     } 
    } 
} 
+0

можно назвать этот метод другим классом, – GANI

+0

Возможно, но, как указано ниже, я решил использовать RootVisual для ссылки на родителя. Благодарю. – Dave

ответ

1

Одно решение переместить вас «gotdetails» метод MainClass и зарегистрировать этот MainClass как ScriptableObject, я имею в виду не нужно ScriptableClass вообще.

Второй вариант, если вы хотите сохранить ScriptableClass, создает статическое событие в ScriptableClass и подписаться на это событие в MainClass. Со статическим событием вам не нужно иметь доступ из экземпляра MainClass к экземпляру ScriptableCalss.

MSDN также есть хорошо walthrough о сообщении javascript и Silverlight.

+1

Спасибо. В некоторых случаях это может потребоваться. Я также получил это, чтобы работать очень просто, используя RootVisual в моем классе Scriptable: if (message == "1") { MainPage mp = App.Current.RootVisual as MainPage; mp.mymethod();} – Dave