public Task <IEnumerable <IKey> > SelectMoviesAsync(Library library) { Ensure.NotNull(library, "library"); TaskCompletionSource <IEnumerable <IKey> > result = new TaskCompletionSource <IEnumerable <IKey> >(); if (movieSelect == null) { Context <IEnumerable <IKey> > navigator = new Context <IEnumerable <IKey> >(result); movieSelect = new MovieSelectWindow(navigator); navigator.SetWindow(movieSelect); StartupLocation(movieSelect, (Window)movieEdit ?? main); movieSelect.Closed += OnMovieSelectClosed; movieSelect.DataContext = new LibraryViewModel(library); movieSelect.Show(); } movieSelect.Activate(); return(result.Task); }
private void OnMovieSelectClosed(object sender, EventArgs e) { movieSelect.Closed -= OnMovieSelectClosed; movieSelect = null; }