2012-04-11 5 views
0

Ich verwende die in this tutorial gelehrten Konzepte zur Kommunikation mit JavaScript zu und von meiner Silverlight-App. Ich möchte, dass der JavaScript-Code prüft, ob alle Formularfelder auf der HTML-Seite ausgefüllt sind, und wenn dies der Fall ist, führen Sie eine Methode in MainPage aus.Verwenden von ScriptableMember für die MainPage-Überprüfung

Das Problem besteht darin, dass diese Technik eine Antwort auf das ScriptableClass-Objekt anstelle der MainPage zurückgibt. Weiß jemand, wie das ScriptableObject eine Methode in der MainClass aufrufen kann? Vielleicht ein Ereignis in der MainClass verwenden, das im ScriptableClass-Objekt ausgelöst wird?

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

können wir diese Methode von einer anderen Klasse nennen, – GANI

+0

Wahrscheinlich, aber wie unten angegeben, entschied ich mich, RootVisual zu verwenden, um die Eltern zu verweisen. Vielen Dank. – Dave

Antwort

1

Eine Lösung ist es, Ihnen „gotdetails“ -Methode bewegen und dieses Mainclass Mainclass als Scriptableobject registrieren, meine ich Sie nicht brauchen ScriptableClass.

Die zweite Option, wenn Sie ScriptableClass beibehalten möchten, ist ein statisches Ereignis in ScriptableClass erstellen und dieses Ereignis in MainClass abonnieren. Bei statischen Ereignissen brauchen Sie keinen Zugriff von der MainClass-Instanz auf die ScriptableCalss-Instanz.

MSDN haben auch gute walthrough über Javascript und Silverlight-Kommunikation.

+1

Danke. Diese können in bestimmten Fällen notwendig sein. Ich habe es auch sehr einfach funktionieren, indem ich RootVisual in meiner Scriptable-Klasse verwende: if (message == "1") { MainPage mp = App.Current.RootVisual als MainPage; mp.mymethod();} – Dave

Verwandte Themen