protected override void OnClosing(CancelEventArgs e)
        {
            base.OnClosing(e);

            mainWindowModel.SaveHistory();
            WindowPlacementManager.Save(Handle);
        }
        protected override void OnSourceInitialized(EventArgs e)
        {
            base.OnSourceInitialized(e);

            // http://grabacr.net/archives/1585
            // によると、ウィンドウハンドルが取れるようになるタイミングは SourceInitialized とのこと。
            // https://docs.microsoft.com/ja-jp/dotnet/framework/wpf/app-development/wpf-windows-overview
            // の「ウィンドウの有効期間イベント」を見ると、SourceInitialized が最も早いタイミングと分かる。
            Handle = new WindowInteropHelper(this).Handle;
            OnHandleInitialized(EventArgs.Empty);

            WindowPlacementManager.Restore(Handle);
        }