コード例 #1
0
        public override object SetObjectData(object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector)
        {
            base.SetObjectData(obj, info, context, selector);
            SchemaModel schemaModel = (SchemaModel)obj;

            schemaModel.Suspend();
            try {
                schemaModel.WorkspaceType = (esriWorkspaceType)Enum.Parse(typeof(esriWorkspaceType), info.GetString("workspaceType"), true);
                schemaModel.Version       = info.GetString("version");
                schemaModel.Metadata      = info.GetString("metadata");
                schemaModel.XmlEncoding   = (DiagramEncoding)Enum.Parse(typeof(DiagramEncoding), info.GetString("encoding"), true);
                schemaModel.XmlIndent     = info.GetBoolean("indent");
            }
            catch { }
            schemaModel.Resume();
            return(schemaModel);
        }
コード例 #2
0
        private void CollectionForm_Closing(object sender, CancelEventArgs e)
        {
            // Get Collection Form
            CollectionForm collectionForm = (CollectionForm)sender;

            // Get edited collection object
            object editValue = collectionForm.EditValue;

            // Check if collection edits have been OK'ed or Canceled
            DialogResult dialogResult = collectionForm.DialogResult;

            switch (dialogResult)
            {
            case DialogResult.OK:
                // Get Schema Model
                DiagrammerEnvironment d           = DiagrammerEnvironment.Default;
                SchemaModel           schemaModel = d.SchemaModel;

                // Suspect Model Draws
                schemaModel.Suspend();

                // Get TableItems Collection
                TableItems tableItems = (TableItems)editValue;

                // Store items in new List
                List <TableItem> list = new List <TableItem>();
                foreach (TableItem tableItem in tableItems)
                {
                    list.Add(tableItem);
                }

                // Clear TableItems Collection
                tableItems.Clear();

                // Re-add all items.
                foreach (TableItem tableItem in list)
                {
                    // If the Table property is not set then use TableItems::Add to append the item.
                    // This will ensure that Table, GradientColor, Indent properties are correctly set.
                    // This will also reset the height of the TableItems collection.
                    if (tableItem.Indent == 0f)
                    {
                        tableItems.Add(tableItem);
                    }
                    else
                    {
                        ((IList)tableItems).Add(tableItem);
                    }
                }

                // Refresh Model
                schemaModel.Resume();
                schemaModel.Refresh();

                break;

            case DialogResult.Cancel:
            default:
                // Collection edits are canceled. No need to refresh.
                break;
            }
        }