public UpdaterWindow(UpdateItem updateItem) { if (updateItem == null) { throw new ArgumentNullException(nameof(updateItem)); } updaterViewModel = new WpfUpdaterViewModel(this, updateItem); DataContext = updaterViewModel; InitializeComponent(); new XcbWebView(webBrowser); webBrowser.Loaded += (o, e) => webBrowser.NavigateToString(updaterViewModel.ReleaseNotes); webBrowser.Navigating += (o, e) => { if (e.Uri != null) { Process.Start(e.Uri.ToString()); e.Cancel = true; } }; remindMeLaterButton.Click += (o, e) => Close(); downloadButton.Click += (o, e) => updaterViewModel.StartDownloadAsync().Forget(); cancelButton.Click += (o, e) => updaterViewModel.CancelDownload(); preferenceChangeSubscription = PreferenceStore.Default.Subscribe(ObservePreferenceChange); }
public override void ViewDidLoad() { progressBar.MinValue = 0; progressBar.MaxValue = 1; remindMeLaterButton.Activated += (sender, e) => { viewModel.RemindMeLater(); View.Window.Close(); }; downloadButton.Activated += (sender, e) => viewModel.StartDownloadAsync().Forget(); cancelButton.Activated += (sender, e) => Cancel(); webView.DecidePolicyForNavigation += (sender, e) => { if (e.NavigationType == WebKit.WebNavigationType.LinkClicked) { NSWorkspace.SharedWorkspace.OpenUrl(e.OriginalUrl); WebKit.WebView.DecideIgnore(e.DecisionToken); return; } WebKit.WebView.DecideUse(e.DecisionToken); }; base.ViewDidLoad(); }