public FilmListViewModel(IFilmProvider filmProvider, IViewModelFactory viewModelFactory) { this.viewModelFactory = viewModelFactory; addFilmCommand = new DelegateCommand(() => ViewModelManager.SetAddFilmViewModel()); foreach (Film film in filmProvider.GetAllFilms()) { var viewModel = viewModelFactory.CreateFilmViewModel(film); films.Add(viewModel); } filmProvider.FilmAdded += (sender, e) => { var viewModel = viewModelFactory.CreateFilmViewModel(e.Film); films.Add(viewModel); }; }