public BooksViewModel(IBooksService booksService, ISelectedBookService selectedBookService, IDialogService dialogService, IEventAggregator eventAggregator, IOpenWindow openWindow) { _booksService = booksService; _selectedBookService = selectedBookService; _dialogService = dialogService; _eventAggregator = eventAggregator; _openWindow = openWindow; _selectedBookService.PropertyChanged += (sender, e) => { base.OnPropertyChanged(nameof(CurrentBook)); }; RefreshBooksCommand = new DelegateCommand(OnGetBooks); NewWindowCommand = new DelegateCommand(OnNewWindow); }
public BookViewModel(IBooksService booksService, ISelectedBookService selectedBookService, IDialogService dialogService, IEventAggregator eventAggregator) { _booksService = booksService; _selectedBookService = selectedBookService; _dialogService = dialogService; _eventAggregator = eventAggregator; AddBookCommand = new DelegateCommand(OnAddBook, CanAddBook); EditBookCommand = new DelegateCommand(OnEditBook, CanEditBook); SaveBookCommand = new DelegateCommand(OnSaveBook, CanSaveBook); CancelBookCommand = new DelegateCommand(OnCancel, CanCancel); CurrentEditMode = BookEditMode.Read; UpdateCommandState(); _selectedBookService.PropertyChanged += (sender, e) => { if (e.PropertyName == "Book") { OnPropertyChanged("Book"); // fire property change on view-model Book if referenced Book fires change } }; }