Почему всплывающее окно Silverlight зависает при выполнении вычислений? - PullRequest
0 голосов
/ 31 января 2012

Я создал пользовательский элемент управления датой и временем в серебряном свете, в моем пользовательском элементе управления серебряным светом есть имена свойств «EditDate», эта дата устанавливается с помощью связывателя, и, в основном, выполняется двухстороннее связывание, когда я устанавливаю дату редактирования. из средства выбора даты и времени он правильно установил мое внешнее свойство, и при установке внешнего свойства есть событие-установщик, которое выполняет некоторые вычисления, теперь проблема заключается в том, что во время выполнения расчета мое всплывающее окно выбора времени и даты остается открытым, есть ли способ, которым я могу скрыть это сразу после установки «EditDate»?

Спасибо Аман.

1 Ответ

0 голосов
/ 02 февраля 2012

Я думаю, что вычисления замораживают поток пользовательского интерфейса.Поместите вычисления в BackgroundWorker, чтобы пользовательский интерфейс можно было обновлять во время обработки вычислений.

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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...