为什么Silverlight弹出窗口会在计算时挂起?

时间:2012-01-31 11:26:38

标签: silverlight popup

我在银灯中创建了一个自定义日期时间控件,在我的银灯自定义控件中有属性名称“EditDate”这个日期是在binder的帮助下设置的,基本上做双向绑定,当我设置编辑日期时从日期时间选择器,它设置我的外部属性,并设置外部属性有一个setter事件执行一些计算,现在问题是在计算正在进行中我的日期时间选择器弹出窗口保持打开,有什么办法我可以设置“EditDate”后立即隐藏它?

由于 阿曼。

1 个答案:

答案 0 :(得分:0)

我认为计算正在冻结UI线程。将计算放在BackgroundWorker中,以便在处理计算时更新UI。

var bw = new BackgroundWorker();
//Will fire when backgroundworker starts
bw.DoWork += (snd, arg) =>
    {
        //Do your calculations here
        CalculationsFunction(param1, param2)
        //Cannot access UI elements here
    };
//Will fire when backgroundworker finishes
bw.RunWorkerCompleted += (s, arg) =>
    {
        //Can access the UI here again if needed
        if (arg.Error != null)
        {
            //Show message if error
        }
        else
        {
            //Update UI here if needed
        }               
    };
    //Begins running the background worker
    bw.RunWorkerAsync((this.DataContext as Iteration));