当启动的窗口关闭时,如何在silverlight中刷新网格?

时间:2012-09-27 14:12:52

标签: c# silverlight mvvm telerik-grid silverlight-5.0

我正在使用网格行使用HtmlPage.Window.Navigate(Uri, "_blank");启动一个窗口,使用上下文菜单进行特定于该行引用的页面的某些自定义编辑。我在银光中使用telerik-grid。我想在用户关闭该窗口时刷新网格。我怎么能这样做?

请分享一些想法,这可能吗?或者在哪里寻找开始解决这个问题?

更新:我使用的是Silver-light MVVM 模型。我从银光开启的子窗口是Web浏览器,我实际上需要一种技术,我可以在银灯应用程序中使用网格,以便在关闭Web浏览器时刷新。另外,我使用 RIA服务来公开Web浏览器的方法。

1 个答案:

答案 0 :(得分:2)

在您的Silverlight应用中公开可从Javascript访问的方法。

namespace SilverlightApplication
{
    public partial class Page : UserControl
    {
        public Page()
        {
            InitializeComponent();

            HtmlPage.RegisterScriptableObject("Page", this);            
        }

        [ScriptableMember]
        public void UpdateDataGrid()
        {
            myDataGridItemsReload(); // your routine
        }
    }
} 

然后在新打开的窗口中,您可以在Silverlight实例上执行方法

<script>
    window.onunload = refreshParentGrid;
    function refreshParentGrid() {
        var hostDiv = window.opener.document.getElementById("silverlightControlHost");
        var control = hostDiv.children[0];           
        control.Content.Page.UpdateDataGrid();
    }
</script>