private void DoCheck() { _problems = ProblemChecker.Check(_document.Map, VisibleOnlyCheckbox.Checked).ToList(); ProblemsList.BeginUpdate(); ProblemsList.Items.Clear(); ProblemsList.Items.AddRange(_problems.OfType <object>().ToArray()); ProblemsList.EndUpdate(); }
private async Task DoCheck(MapDocument doc) { _problems = doc == null ? new List <ProblemWrapper>() : await Check(doc, GetFilter(_visibleOnly, _selectedOnly)); this.InvokeLater(() => { var si = ProblemsList.SelectedIndex; ProblemsList.BeginUpdate(); ProblemsList.Items.Clear(); ProblemsList.Items.AddRange(_problems.OfType <object>().ToArray()); if (si < 0 || si >= ProblemsList.Items.Count) { si = 0; } if (si < ProblemsList.Items.Count) { ProblemsList.SelectedIndex = si; } ProblemsList.EndUpdate(); UpdateSelectedProblem(null, EventArgs.Empty); }); }