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 void Cancel() => viewModel.CancelDownload();