private void RemoveWindow(AppWindowViewModel window) { int index = _filteredWindowList.IndexOf(window); if (index < 0) { return; } if (lb.SelectedIndex == index) { if (_filteredWindowList.Count > index + 1) { lb.SelectedIndex++; } else { if (index > 0) { lb.SelectedIndex--; } } } _filteredWindowList.Remove(window); _unfilteredWindowList.Remove(window); }
public async Task <bool> TryCloseAsync(AppWindowViewModel window) { window.IsBeingClosed = true; window.AppWindow.Close(); while (!_isDisposed && !window.AppWindow.IsClosedOrHidden) { await Task.Delay(CheckInterval).ConfigureAwait(false); } return(window.AppWindow.IsClosedOrHidden); }