示例#1
0
        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();
        }
示例#3
0
 /// <summary>
 /// 데이터 저장 메소드
 /// 파라미터로 처리된 콜백 메소드를 호출한다.
 /// </summary>
 /// <param name="arg"></param>
 /// <param name="callback"></param>
 protected virtual void DataSave(object arg, SaveCallback callback)
 {
     callback?.Invoke(arg, null);
 }