2011-07-01 8 views
1

私は基本的に、JSON文字列に格納されたデータから多層の球(同心円と考える)の断面画像を作成するSilverlightアプリケーションを作成しました。 JSON文字列は直径+色の値の配列で、次のようになります。Silverlightメソッドを起動するJavascriptボタン?

[{"diam":100,"color:"#ffffff"},{"diam":150,color:"#ff0000"}] 

私はSilverlightですべての作業を行っています。上記のJSONを使用してブラウザにアプリケーションをロードすると、2つの同心円のレンダリングに成功し、内側の円は100ピクセルの白(#ffffff)、外側の円は赤(#ff0000)です。 150ピクセルの直径。すばらしいです。

これをHTMLページ内に統合し、そのJSONデータをJavaScriptからSilverlightに渡す必要があります。私はSIlverlightが提供するHTMLBridge機能を使用していますが、Javascriptからvizを構築するSilverlightメソッドを呼び出す際に問題があります。

Silverlightのメソッド名はBuildViz()です。これはSilverlightキャンバスから既存の要素をすべて削除し、JSONDataという名前のパブリックプロパティからビジュアライゼーションを再ビルドします。 JSONDataはそれが価値だ設定時にBuildViz()メソッドを呼び出します(

[ScriptableMember()] 
public string JSONData { 
    get { return _JSONData; } 
    set { _JSONData = value; BuildViz(); } 
} 

私はそれがJavaScriptで値だが、BuildViz()メソッドが呼び出されないように思わJavaScriptにJSONDataを暴露HTMLBridgeを使用して設定しようとしたことか私のキャンバスには影響しません)。ここからどこに行くのかわからない。私がオンラインで見たHTMLBridgeの例は非常に基本的なものであり、文字列を大文字に変換して呼び出し側のJavaScriptに値を返すような簡単な方法しか扱っていません。実際にSilverlight内でメソッドを実行する必要があります。

ご協力いただければ幸いです。

TIA

+0

のようなもの、私は解決策を持っている...しかし、StackOverflowの私はそれを投稿させません。あまりにも悪い:( – lamarant

答えて

0

これを試してみてください、またはそれ

var silverlightObject = document.getElementById('_the_id_of_your_silverlight_obj_'); 
var jsonData = { value: 'hello world' } 

// invoke setter 
silverlightObject.Content._the_object_containing_your_method_.set_JSONData(jsonData); 

// invoke getter 
jsonData = silverlightObject.Content._the_object_containing_your_method_.get_JSONData(); 
+0

ありがとう...私は基本的にあなたが提案したことをしました。これについての詳細はこのリンクも参照してください:http://stackoverflow.com/questions/6460431/sending-json-object-from-javascript-to-シルバーライト、イベントトリガー、イベントトリガー – lamarant

関連する問題