public OutputViewControl(IBindingErrorListener bindingErrorListener, IOutputViewControlViewModel viewModel)
        {
            Check.IfIsNull(bindingErrorListener).Throw<ArgumentNullException>(() => bindingErrorListener);

            DataContext = ViewModel = viewModel;

            InitializeComponent();

            bindingErrorListener.Listen(
                message => Log(Properties.Resources.OutputViewControlBindingErrorsCategory, message));
        }
        public MainWindow(IBindingErrorListener bindingErrorListener,
            IEditorLogger logger,
            IStartupWindow startupWindow)
        {
            Check.IfIsNull(bindingErrorListener).Throw<ArgumentNullException>(() => bindingErrorListener);
            Check.IfIsNull(logger).Throw<ArgumentNullException>(() => logger);
            Check.IfIsNull(startupWindow).Throw<ArgumentNullException>(() => startupWindow);

            InitializeComponent();

            this.startupWindow = startupWindow;

            Closed += OnWindowClose;
        }