Silverlight 4应用程序冻结没有抛出任何异常

本文关键字:任何 异常 应用程序 冻结 Silverlight | 更新日期: 2023-09-27 18:17:04

我正在开发一个Silverlight 4 RIA应用程序。有一个存储数据的DataGrid和两个按钮:添加新项和删除项。在为时间创建一个新项之后,应用程序会像这样冻结——我将在下面解释这种奇怪的行为。

创建新项的场景如下:

  1. 单击后,将出现子窗口。对父页上使用的域数据源的引用是在构造函数中传递给子窗口。
  2. 用户选择文件。
  3. 文件发送到web服务。作为响应,web服务从该文件返回一些数据。
  4. 一个新的数据对象正在被创建并插入到域数据源。

子窗口只在调用两次时导致整个应用程序冻结,但是第一次调用需要创建对象。我可以反复打开和关闭子窗口,一切都会正常工作,直到一系列:打开。创建->打开。关闭/打开。创建发生。我试图用VS工具(alt ctrl e)跟踪所有异常,但没有。

上的断点
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)

也没有显示任何内容。什么好主意吗?

页面代码。子窗口代码

Silverlight 4应用程序冻结没有抛出任何异常

删除以下内容,一切都将正常。

    private void ChildWindow_Closed(object sender, EventArgs e)
    {
        this.DialogResult = false;
    }

为了评估更多,ChildWindow_Closed是首先设置dialog sult的结果。通过重新设定,意想不到的事情发生了。

在您帮助我解决这个问题之后,我做了更多的研究。似乎是SL4的bug。这也应该有所帮助。在SL论坛上讨论这个话题。

protected override void OnClosed(EventArgs e)
    {
        base.OnClosed(e);
        Application.Current.RootVisual.SetValue(Control.IsEnabledProperty, true);
    }