コード例 #1
0
        private void Form1_Load(object sender, EventArgs e)
        {
            _docManager          = new JsonSDI <AppDocument>(".json", "Json Files|*.json", "Save changes?");
            _docManager.Document = new AppDocument();
            _docManager.Controls.Add(tbFirstName, doc => doc.FirstName);
            _docManager.Controls.Add(tbLastName, doc => doc.LastName);
            _docManager.Controls.Add(chkIsActive, doc => doc.IsActive);
            _docManager.Controls.AddEnum(cbBelt, doc => doc.Belt);
            _docManager.Controls.Add(dateTimePicker1, doc => doc.EffectiveDate);
            _docManager.Controls.Add(builderTextBox1, doc => doc.BuilderText);
            _docManager.Controls.Add(numericUpDown1, doc => doc.Level);
            _docManager.Controls.AddItems(cbItem, doc => doc.Item, AppDocument.SelectableItems);
            _docManager.Controls.AddItems(cbKeyedItem, doc => doc.Key, AppDocument.KeyedItems);

            _docManager.Controls.Add(tbToolStrip, doc => doc.ToolStripText);
            _docManager.Controls.AddItems(cbToolStrip,
                                          (doc) =>
            {
                doc.DocumentItemValue = ToolStripComboBoxExtensions.GetItem <DocumentItem>(cbToolStrip).Value;
                return(nameof(AppDocument.DocumentItemValue));
            },
                                          (doc) => cbToolStrip.SelectedItem = AppDocument.SelectableItems.SingleOrDefault(item => item.Value == doc.DocumentItemValue),
                                          AppDocument.SelectableItems);

            _docManager.Controls.PropertyUpdated += delegate(object sender2, AppDocument document, string propertyName)
            {
                string json = JsonConvert.SerializeObject(document, Formatting.Indented);
                MessageBox.Show(json, propertyName);
            };

            colDataType.Fill <DbType>();
        }