javascript 的 WPF Webbrowser 使用 c# 中定义的变量?

WPF Webbrowser with javascript use variable defined in c#?

我试图在 Webbrowser 控件中加载的 html 页面内的 javascript 函数中传递在我的 wpf 项目中定义的数组,但我找不到任何方法可以做到这一点。

我想做的例子:

Xaml:

<WebBrowser x:Name="WBTimeGraph" /> 

c#:

namespace GraphNameSpace
{
    public partial class TimeGraph : Window
    {
        // MEMBERS
        public []int MyArrayOfData = new int[50];
        // METHODS
        public TimeGraph ()
        {
             InitializeComponent();

              string Dir = Environment.CurrentDirectory;
              Uri tNav = new Uri(Dir + string.Format("/TimeGraph.html"));
              WBTimeGraph.Navigate(tNav);
        }
    }
}

HTML :

     <script>
        $(function () {
          // Do a Graph with MyArrayOfData
        });
     </script>

我找到的最简单的解决方案是调用一个带有参数的 javascript 函数来更新我的图形,并将序列化数组作为参数传递

HTML :

 <script type="text/javascript" src="http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js"></script>
 <script type="text/javascript">
    function UpdateGraph(json) {

        var data = JSON.parse(json);
        //  Update My Graph with new data
        // This allow me to use data like the serialised array - data[0] ...

     }
 </script>

C#:

在引用中添加了 System.Web.Extension 以进行脚本序列化

 private void UpdateValueInJavascriptGraph()
 {
     var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
     var json = serializer.Serialize(MyArrayOfData);  
     object result = this.WBTimeGraph.InvokeScript("UpdateGraph", new object[] { json });
 }