public async void AcceptDialog() { // ダイアログ種別で分岐 switch (DType) { case DialogType.Configure: // 設定を保存 XmlConverter.Serialize(CurrentLogConfig, String.Format(@"{0}\LogConfig.xml", SiteConfig.BASE_DIR)); if (CurrentLoginInfo is null) { CurrentLoginInfo = new LoginInfo(); } CurrentLoginInfo.LoginPass = AesEncrypt.EncryptToBase64(SecureStringConverter.SecureToPlain(CurrentAesPass), AesKeyConf.key, AesKeyConf.iv); XmlConverter.Serialize(CurrentLoginInfo, String.Format(@"{0}\LoginInfo.xml", SiteConfig.BASE_DIR)); // ダイアログを閉じる IsDialogOpen = false; DialogView = null; break; case DialogType.HotelUpdate: // Viewの型で更に分岐 switch (DialogView) { case MaterialDialogOkCancel okCancelDialog: // ダイアログを閉じる IsDialogOpen = false; DialogView = null; // 次のダイアログを表示する Message = "処理中..."; DialogView = new MaterialDialogProcessing() { DataContext = this }; IsDialogOpen = true; // 処理モデル定義 var model = new HotelUpdate(); await Task.Run(() => { // 処理実行 model.Execute(); }); // 処理成功 if (model.Result) { // ダイアログを閉じる IsDialogOpen = false; DialogView = null; // 次のダイアログを表示する Message = "完了しました\r\n"; DialogView = new MaterialDialogOk() { DataContext = this }; IsDialogOpen = true; } break; case MaterialDialogOk okDialog: // ダイアログを閉じる IsDialogOpen = false; DialogView = null; break; } break; case DialogType.License: // ダイアログを閉じる IsDialogOpen = false; DialogView = null; break; } }