using SimpleMVVM.Common; using SimpleMVVM.Data; using SimpleMVVM.Models; using System; using System.Collections.ObjectModel; using System.Windows.Input; namespace SimpleMVVM.ViewModels { public class MovieListViewModel : ViewModelBase { private ObservableCollection<Movie> movies; private ICommand deleteAllMoviesCommand; private Movie selectedMovie; private FakeDatabase dbConext; public ObservableCollection<Movie> Movies { get => movies; set { movies = value; NotifyPropertyChanged("Movies"); } } public ICommand DeleteAllMoviesCommand { get => deleteAllMoviesCommand; } public Movie SelectedMovie { get => selectedMovie; set { selectedMovie = value; NotifyPropertyChanged("SelectedMovie"); } } public MovieListViewModel(FakeDatabase fakeDatabase) { this.dbConext = fakeDatabase; movies = dbConext.Movies; deleteAllMoviesCommand = new RelayCommand(new Action(deleteAllMovies)); } private async void deleteAllMovies() { await dbConext.Clear(); Movies.Clear(); } } }