public BookmarksViewModel() { _storage = new BookmarksStorage(); foreach (var bookmark in _storage.Bookmarks) { var viewModel = new BookmarkViewModel(bookmark); viewModel.Deleting += OnBookmarkDeleting; viewModel.Editing += OnBookmarkEditing; Bookmarks.Add(viewModel); } AddBookmarkCommand = new RelayCommand(arg => { var bookmarkViewModel = (BookmarkViewModel)arg; bookmarkViewModel.Deleting += OnBookmarkDeleting; bookmarkViewModel.Editing += OnBookmarkEditing; _storage.Add(bookmarkViewModel.Bookmark); Bookmarks.Add(bookmarkViewModel); }); }
private void OnBookmarkDeleting(object sender, BookmarkViewModel bookmarkViewModel) { if (MessageBox.Show(UITexts.DeleteBookmarkConfirmation, UITexts.ConfirmationDialogTitle, MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { _storage.Remove(bookmarkViewModel.Bookmark); Bookmarks.Remove(bookmarkViewModel); bookmarkViewModel.Deleting -= OnBookmarkDeleting; bookmarkViewModel.Editing -= OnBookmarkEditing; } }
private void OnBookmarkEditing(object sender, BookmarkViewModel bookmarkViewModel) { var editable = bookmarkViewModel.Clone(); var dialog = new EditBookmark(editable); if (dialog.ShowDialog() == true) { bookmarkViewModel.FillFrom(editable); _storage.Save(); } }
public MainWindowViewModel( BrowserUrl browserUrl) { _browserUrl = browserUrl ?? throw new ArgumentNullException(nameof(browserUrl)); ExitCommand = new RelayCommand( (arg) => Application.Current.Shutdown() ); Bookmarks = _bookmarksViewModel.Bookmarks; _addressCompletionProvider.RegisterProvider(new BookmarksUriProvider(() => _bookmarksViewModel.Bookmarks.Select(b => b.Bookmark))); _addressCompletionProvider.RegisterProvider(new AllowedUrisProvider(_browserUrl)); AddBookmarkCommand = new RelayCommand( (arg) => { var viewModel = new BookmarkViewModel() { Title = SelectedBrowser.Browser.DocumentTitle, Address = SelectedBrowser.Browser.Source.ToString() }; var dialog = new EditBookmark(viewModel); if (dialog.ShowDialog() == true) { _bookmarksViewModel.AddBookmarkCommand.Execute(viewModel); } } ); AddNewTabCommand = new RelayCommand(arg => { var viewModel = new BrowserViewModel(_browserUrl); viewModel.Closing += OnBrowserTabClosing; viewModel.NewWindowRequested += OnNewWindowRequested; Browsers.Add(viewModel); SelectedBrowser = viewModel; }); SetLanguageCommand = new RelayCommand(arg => { var language = (string)arg; if (string.IsNullOrWhiteSpace(language) || CultureInfo.GetCultureInfo(language) == null) { Configuration.Language = null; } else { Configuration.Language = language; } NotifyPropertyChanged(nameof(Language)); Configuration.SetCurrentCulture(); }); _selectedBrowser = new BrowserViewModel(_browserUrl); _selectedBrowser.Closing += OnBrowserTabClosing; _selectedBrowser.NewWindowRequested += OnNewWindowRequested; Browsers.Add(_selectedBrowser); }