Example #1
0
        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);
        }
Example #2
0
        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
                }
            };
        }