Как заморозить ListBox, пока задача заканчивается - PullRequest
0 голосов
/ 28 февраля 2019

Как заморозить ListBox до конца Thread, чтобы предотвратить SelectedIndex потерю выделения?

Вот мой фактический код (но выделение выделения теряется, когда я отключаю и включаю ListBox):

        ListBox_DeviceList.IsEnabled = false;


        if (ListBox_DeviceList.SelectedItem != null)
        {
            bool error = await GetAvailableJobs();

            //enables when Task ends ...
            ListBox_DeviceList.IsEnabled = true;

            if (error)
            {
                //do something
            }
            else
            {
                //do something
            }
        }

1 Ответ

0 голосов
/ 02 марта 2019

Я думаю, что вам нужно установить для свойства Enable (вы использовали .IsEnabled) значение false, а в конце установить значение true.

ListBox_DeviceList.Enabled = false;


    if (ListBox_DeviceList.SelectedItem != null)
    {
        bool error = await GetAvailableJobs();

        //enables when Task ends ...
        ListBox_DeviceList.Enabled = true;

        if (error)
        {
            //do something
        }
        else
        {
            //do something
        }
    }

Другим способом является вызов методов SuspendLayout () и ResumeLayout ().

ListBox_DeviceList.SuspendLayout();


    if (ListBox_DeviceList.SelectedItem != null)
    {
        bool error = await GetAvailableJobs();

        //enables when Task ends ...
        ListBox_DeviceList.ResumeLayout();

        if (error)
        {
            //do something
        }
        else
        {
            //do something
        }
    }
...