private void SaveGame() { ConsoleUtil.WriteBlanks(); Console.SetCursorPosition(0, Console.WindowHeight / 2); string defaultName = "game_" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss"); Console.Write($"Enter file name (use .json to save to json) [{defaultName}]: "); string name = Console.ReadLine() ?? ""; if (string.IsNullOrEmpty(name)) { name = defaultName; } // if (!name.EndsWith(".json")) name += ".json"; SaveCallback?.Invoke(name); Menu.RevertSelection(1); }
private void BtnSave_Click(object sender, RoutedEventArgs e) { var modelObject = this.ObjectConstructor.Invoke(); for (int i = 0; i < _objectProperties.Length; i++) { if (_objectProperties[i].TextBox == null) { continue; } var propText = _objectProperties[i].TextBox.Text; if (!string.IsNullOrEmpty(propText)) { object propValue = Convert.ChangeType(propText, _objectProperties[i].PropertyInfo.PropertyType); _objectProperties[i].PropertyInfo.SetValue(modelObject, propValue); } } SaveCallback.Invoke(modelObject); this.Close(); }
/// <summary> /// 데이터 저장 메소드 /// 파라미터로 처리된 콜백 메소드를 호출한다. /// </summary> /// <param name="arg"></param> /// <param name="callback"></param> protected virtual void DataSave(object arg, SaveCallback callback) { callback?.Invoke(arg, null); }