// true=成功,false=失败,null=取消 private async Task <bool?> _SaveAsync() { bool?result = null; if (_Saved) { if (File.Exists(Entrance.FileName)) { // 当且仅当已经保存且文件存在,才认为不需要(重新)保存且保存成功 result = true; } // 如果文件已经保存,但不存在(被删除/移动存储介质弹出),那么重新保存 else { result = await AsyncMethod.SaveAsync(); // 如果保存失败,那么另存为 if (!result.Value) { bool?r = _SaveFileDialog.ShowDialog(); if (r ?? false) { result = await AsyncMethod.SaveAsAsync(_SaveFileDialog.FileName); } } } } else { if (!string.IsNullOrEmpty(Entrance.FileName)) { result = await AsyncMethod.SaveAsync(); } // 首次保存等同于另存为 else { bool?r = _SaveFileDialog.ShowDialog(); if (r ?? false) { result = await AsyncMethod.SaveAsAsync(_SaveFileDialog.FileName); } } } _Saved = result ?? false; return(result); }
// true=成功,false=失败,null=取消 private async Task <bool?> _SaveAsAsync() { bool?result = null; bool?r = _SaveFileDialog.ShowDialog(); if (r ?? false) { result = await AsyncMethod.SaveAsAsync(_SaveFileDialog.FileName); } _Saved = result ?? false; return(result); }