Поиск SQL-серверов в приложении WPF - PullRequest
0 голосов
/ 28 октября 2009

Я перемещаю свое старое приложение из форм Windows в WPF и обнаружил ошибку с подчеркнутыми строками в этом методе. Может ли кто-нибудь помочь с этими проблемами на DoEvents; SuspendLayout; ResumeLayout. Мой старый метод:

private void FindDataBases()
{
   string tempDBName = comboBoxDataBases.Text;

   // ((FrameworkElement) this).Cursor = Cursors.WaitCursor;
   ((FrameworkElement)this).Cursor = Cursors.Wait;

   Application.DoEvents();

   SuspendLayout();

   DataSet dataBases = GetDatabases();

   ((FrameworkElement) this).Cursor = Cursors.Default;
   Application.DoEvents();

   if ((dataBases != null) && (dataBases.Tables[0].Rows.Count > 0))
   {
      comboBoxDataBases.DisplayMember = "DbName";
      comboBoxDataBases.DataSource = dataBases.Tables[0];

      if (comboBoxDataBases.FindStringExact(tempDBName) > 0)
      {
         comboBoxDataBases.SelectedIndex = comboBoxDataBases.FindStringExact(tempDBName);
      }
   }
   else
   {
      comboBoxDataBases.DataSource = null;
   }

   ResumeLayout();

   // this.comboBoxDataBases.Focus();
}

1 Ответ

0 голосов
/ 28 октября 2009

Я бы постарался не блокировать приложение при перечислении баз данных. Как насчет того, чтобы фоновый поток работал? Может быть BackgroundWorker? Блокировка пользовательского интерфейса при запуске фонового потока, разблокировка пользовательского интерфейса, когда это будет сделано. AFAIK, в WPF больше нет такого понятия, как Application.DoEvents() ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...